您的位置:首页 > 移动开发 > Android开发

android 选择图片 相册选择 马上拍照

2013-09-24 14:16 465 查看
public class MainActivity extends Activity implements OnClickListener {

private ImageView iv;
private int SELECT_PICTURE = 1; // 从图库中选择图片
private int SELECT_CAMER = 2; // 用相机拍摄照片
private Bitmap bmp;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

init();

}

private void init() {
iv = (ImageView) findViewById(R.id.imageView1);
iv.setOnClickListener(this);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
Uri uri = data.getData();
ContentResolver cr = this.getContentResolver();
try {
if (bmp != null) {
bmp.recycle();
bmp = BitmapFactory.decodeStream(cr.openInputStream(uri));
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
iv.setImageURI(uri);
} else {
Toast.makeText(MainActivity.this, "选择图片失败,请重新选择", Toast.LENGTH_SHORT)
.show();
}
}

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.imageView1:
showChoosePhotoDialog();
break;

default:
break;
}
}

private void showChoosePhotoDialog() {
CharSequence[] items = { "相册", "相机" };
AlertDialog dialog = new AlertDialog.Builder(this)
.setTitle("选择图片来源")
.setItems(items, new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
if (which == SELECT_PICTURE) {
Intent intent = new Intent(
MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, SELECT_CAMER);
} else {
Intent intent = new Intent(
Intent.ACTION_GET_CONTENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("image/*");
startActivityForResult(intent, SELECT_PICTURE);
}
}
})
.setNegativeButton("取消", new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
dialog.cancel();
}
}).create();
dialog.show();
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Android