Android 获取照相机图片或本地图片
生活随笔
收集整理的這篇文章主要介紹了
Android 获取照相机图片或本地图片
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
網(wǎng)上找了一些代碼,我再小米手機(jī)上測(cè)試,發(fā)現(xiàn)還是有的不是很好用,所以找了資料,把代碼貼出來(lái)分享一下。
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() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubCharSequence[] items = { "相冊(cè)", "相機(jī)" };new AlertDialog.Builder(getActivity()).setTitle("選擇圖片來(lái)源").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 returnnull, // 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)// 如果不釋放的話,不斷取圖片,將會(huì)內(nèi)存不夠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(), "請(qǐng)重新選擇圖片", Toast.LENGTH_SHORT).show();}}
我的代碼是寫在Fragment里面的。so... ?你們懂的
總結(jié)
以上是生活随笔為你收集整理的Android 获取照相机图片或本地图片的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 1.14阅读论文:A Composite
- 下一篇: UG NX10.0制图——修改单位小数位