Android头像选择
2017-10-18 03:09
190 查看
简单头像选择
ui设计
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/button1"
android:layout_below="@+id/button1"
android:layout_marginLeft="33dp"
android:layout_marginTop="106dp"
android:src="@drawable/ic_launcher" />
</RelativeLayout>
逻辑实现
package com.example.android_name;
import java.io.FileNotFoundException;
import java.io.IOException;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.app.Activity;
import android.content.ContentResolver;
import android.content.Intent;
import android.graphics.Bitmap;
import android.view.ContextMenu;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ContextMenu.ContextMenuInfo;
import android.widget.ImageView;
public class MainActivity extends Activity {
private ImageView img=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
img=(ImageView)this.findViewById(R.id.imageView1);
//注册上下文对象
registerForContextMenu(img);
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
// TODO Auto-generated method stub
super.onCreateContextMenu(menu, v, menuInfo);
menu.setHeaderTitle("设置头像");
menu.add(0, 1, 0, "相机中");
menu.add(0, 2, 0, "相册中获取");
}
@Override
public boolean onContextItemSelected(MenuItem item) {
// TODO Auto-generated method stub
int id=item.getItemId();
switch(id){
case 1:
//创建意图
Intent intent=new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, 1);
break;
case 2:
Intent abum=new Intent(Intent.ACTION_GET_CONTENT);
//设置类型
abum.setType("image/*");
startActivityForResult(abum, 2);
break;
}
return true;
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if(resultCode==RESULT_OK&&requestCode==1){
//从照相机中获取数据
Bundle
budll=data.getExtras();
if(budll!=null){
Bitmap bit=
(Bitmap)budll.get("data");
img.setImageBitmap(bit);
}
}else if(resultCode==RESULT_OK&&requestCode==2){
try {
Uri u=data.getData();
ContentResolver con=
getContentResolver();
Bitmap b=MediaStore.Images.Media.getBitmap(con, u);
img.setImageBitmap(b);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
ui设计
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/button1"
android:layout_below="@+id/button1"
android:layout_marginLeft="33dp"
android:layout_marginTop="106dp"
android:src="@drawable/ic_launcher" />
</RelativeLayout>
逻辑实现
package com.example.android_name;
import java.io.FileNotFoundException;
import java.io.IOException;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.app.Activity;
import android.content.ContentResolver;
import android.content.Intent;
import android.graphics.Bitmap;
import android.view.ContextMenu;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ContextMenu.ContextMenuInfo;
import android.widget.ImageView;
public class MainActivity extends Activity {
private ImageView img=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
img=(ImageView)this.findViewById(R.id.imageView1);
//注册上下文对象
registerForContextMenu(img);
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
// TODO Auto-generated method stub
super.onCreateContextMenu(menu, v, menuInfo);
menu.setHeaderTitle("设置头像");
menu.add(0, 1, 0, "相机中");
menu.add(0, 2, 0, "相册中获取");
}
@Override
public boolean onContextItemSelected(MenuItem item) {
// TODO Auto-generated method stub
int id=item.getItemId();
switch(id){
case 1:
//创建意图
Intent intent=new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, 1);
break;
case 2:
Intent abum=new Intent(Intent.ACTION_GET_CONTENT);
//设置类型
abum.setType("image/*");
startActivityForResult(abum, 2);
break;
}
return true;
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if(resultCode==RESULT_OK&&requestCode==1){
//从照相机中获取数据
Bundle
budll=data.getExtras();
if(budll!=null){
Bitmap bit=
(Bitmap)budll.get("data");
img.setImageBitmap(bit);
}
}else if(resultCode==RESULT_OK&&requestCode==2){
try {
Uri u=data.getData();
ContentResolver con=
getContentResolver();
Bitmap b=MediaStore.Images.Media.getBitmap(con, u);
img.setImageBitmap(b);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
相关文章推荐
- android 头像选择以及裁剪
- 朝花夕拾-android 从手机选择图片或拍照设置头像
- Android实现从相册选择或者直接拍照来设置圆形的头像CircleImageView
- android 选择头像上传
- Android开发--通过相册或拍照选择头像
- Android 项目实战之头像选择功能
- android头像选择(拍照,相册,裁剪)
- Android调用手机相机与手机图库选择用户头像
- Android下头像选择
- Android头像选择器
- Android之圆形头像(实现相机拍摄+相册选择+图片裁剪功能)
- 安卓学习笔记---Android 头像或者照片照、选择图片并裁剪
- android 选择手机图库,实现修改个人资料,头像上传功能,可直接使用
- android开发中注册的时候,从A跳到B选择头像,再返回到A界面,除了B界面新增的数据,A界面原先的信息依然存在
- Android头像选择(手机和相册)
- Cocos2d-x 3.x 头像选择器,本地相册与拍照+头像编辑功能(Android、IOS双平台实现)
- Android之修改用户头像并上传服务器(实现手机拍照和SD卡选择上传)
- Android开发--通过相册或拍照选择头像
- android头像选择(拍照,相册,裁剪)
- Android选择头像(从相机-相册-截图获取),以及闪退的解决