【发布时间】:2017-06-22 06:47:09
【问题描述】:
我正在使用以下代码从相机中捕获图像并将其存储在公共目录图片中。如何使用相同的图像并将其设置为在 ImageView 中?
public void take_photo(){
if (ActivityCompat.checkSelfPermission(Contact_info.this,Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED){
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
requestPermissions(new String[]{Manifest.permission.CAMERA},40);
}
return;
}
Intent cameraIntent=new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (ActivityCompat.checkSelfPermission(Contact_info.this,Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED){
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},50);
}
return;
}
File pictureDirectory = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
String pictureName = "Image1.jpg";
File imageFile = new File(pictureDirectory, pictureName);
Uri pictureUri;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
pictureUri = FileProvider.getUriForFile(context, context.getApplicationContext().getPackageName() + ".provider", imageFile);
} else{
pictureUri = Uri.fromFile(imageFile);
}
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, pictureUri);
startActivityForResult(cameraIntent, CAMERA_REQUEST);
}
我的活动结果代码:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultCode==RESULT_OK){
if(requestCode==CAMERA_REQUEST){
//Commented since upon using this and trying to save the image in the file, the app crashes giving a null pointer exception
//Bitmap cameraImage =(Bitmap) data.getExtras().get("data");
//contact_image.setImageBitmap(cameraImage);
}
}
}
我不想知道如何在 ImageView 中设置图像,我想知道如何将相机拍摄并存储在手机目录中的图像用作 ImageView 中的图像
【问题讨论】:
-
在 onactivityresult 中你会得到一个数据 obj,你可以从中获取 uri 并将其设置为你想要的图像视图
-
可能重复:stackoverflow.com/questions/5991319/…Android 官方开发者网站也有很多支持:developer.android.com/training/camera/photobasics.html
标签: java android android-camera android-camera-intent