Android 获取照相机图片或本地图片
2013-09-29 14:32
316 查看
网上找了一些代码,我再小米手机上测试,发现还是有的不是很好用,所以找了资料,把代码贴出来分享一下。
我的代码是写在Fragment里面的。so... 你们懂的
public final static int CONSULT_DOC_PICTURE = 1000; public final static int CONSULT_DOC_CAMERA = 1001; private int SELECT_PICTURE = 0; private int SELECT_CAMERA = 1; private ImageView iv; private Bitmap bmp; private Uri outputFileUri;
private OnClickListener cameraClickListener = new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub CharSequence[] items = { "相册", "相机" }; new AlertDialog.Builder(getActivity()).setTitle("选择图片来源").setItems(items, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { if (which == SELECT_PICTURE) { Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.addCategory(Intent.CATEGORY_OPENABLE); intent.setType("image/*"); startActivityForResult(Intent.createChooser(intent, "选择图片"), CONSULT_DOC_PICTURE); } else { File file = new File(Environment.getExternalStorageDirectory(), "textphoto.jpg"); outputFileUri = Uri.fromFile(file); Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri); startActivityForResult(intent, CONSULT_DOC_CAMERA); } } }).create().show(); } };
public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == ConsultDoctor.CONSULT_DOC_PICTURE) { if(data == null){ return; } Uri uri = data.getData(); String[] proj = { MediaStore.Images.Media.DATA }; Cursor cursor = getActivity().managedQuery(uri, proj, // Which // columns // to return null, // WHERE clause; which rows to return (all rows) null, // WHERE clause selection arguments (none) null); // Order-by clause (ascending by name) int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); cursor.moveToFirst(); String path = cursor.getString(column_index); if (bmp != null)// 如果不释放的话,不断取图片,将会内存不够 bmp.recycle(); bmp = BitmapFactory.decodeFile(path); iv.setImageBitmap(bmp); } else if (requestCode == ConsultDoctor.CONSULT_DOC_CAMERA) { bmp = BitmapFactory.decodeFile(outputFileUri.getPath()); iv.setImageBitmap(bmp); } else { Toast.makeText(getActivity(), "请重新选择图片", Toast.LENGTH_SHORT).show(); } }
我的代码是写在Fragment里面的。so... 你们懂的
相关文章推荐
- android获取本地图片和照相机
- Android:读取本地相册与相机获取图片上传到服务器(用字符串的形式上传)
- Android仿人人客户端(v5.7.1)——对从服务器端(网络)获取的图片进行本地双缓存处理(流程图或活动图)
- android 获取本地图片路径失败,cursor.getString(column_index);返回null
- Android仿人人客户端(v5.7.1)——对从服务器端(网络)获取的图片进行本地双缓存处理(编码实现)
- Android之远程图片获取和本地缓存
- Android远程图片获取和本地缓存
- Android远程图片获取和本地缓存
- 调用设备的照相机和获取本地的图片
- Android仿人人客户端(v5.7.1)——对从服务器端(网络)获取的图片进行本地双缓存处理(编码实现)
- Android远程图片获取和本地缓存
- Android远程图片获取和本地缓存
- [转] Android 远程图片获取和本地缓存
- android获取本地音乐的专辑的图片
- Android 调用照相机,获取的图片太小
- Android开发获取本地图片的一种方法
- Android 之 远程图片获取和本地缓存
- android红米等关于读取本地文件夹图片获取路径的问题的解决
- Android远程图片获取和本地管理
- Android远程图片获取和本地缓存