Android 如何添加新功能以重新加载相机图片
1.这些代码用于调用camera和crop image pictured,并将图像保存在externalStorageDirectory中。此功能工作正常 2.但问题是:当我退出这个应用程序并再次运行它时,它无法加载图像 MainActivity.javaAndroid 如何添加新功能以重新加载相机图片,android,android-intent,android-activity,Android,Android Intent,Android Activity,1.这些代码用于调用camera和crop image pictured,并将图像保存在externalStorageDirectory中。此功能工作正常 2.但问题是:当我退出这个应用程序并再次运行它时,它无法加载图像 MainActivity.java public class MainActivity extends Activity { public static final int TAKE_PHOTO = 1; public static f
public class MainActivity extends Activity {
public static final int TAKE_PHOTO = 1;
public static final int CROP_PHOTO = 2;
private Button takePhoto;
private ImageView picture;
private Uri imageUri;
private Bitmap bitmap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
takePhoto = (Button) findViewById(R.id.take_photo);
picture = (ImageView) findViewById(R.id.picture);
/*
*need a feature to reload to picture~pls help*
*****I find that imageUri is alwasys null,why is that?*****
*/
if(imageUri !=null){
try {
bitmap=BitmapFactory.decodeStream(getContentResolver().openInputStream(imageUri));
picture.setImageBitmap(bitmap);
}catch(FileNotFoundException e){
e.printStackTrace();
}
}
takePhoto.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
File outputimage = new File(Environment.getExternalStorageDirectory(),"output_image.jpg");
try {
if(outputimage.exists())
{
outputimage.delete();
}
outputimage.createNewFile();
}catch(IOException e){
e.printStackTrace();
}
imageUri = Uri.fromFile(outputimage);
Intent intent = new Intent ("android.media.action.IMAGE_CAPTURE");
intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
startActivityForResult(intent, TAKE_PHOTO);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode){
case TAKE_PHOTO:
if(resultCode == RESULT_OK){
Intent intent =new Intent ("com.android.camera.action.CROP");
intent.setDataAndType(imageUri, "image/*");
intent.putExtra("scale", true);
intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
startActivityForResult(intent, CROP_PHOTO);
}
case CROP_PHOTO:
if(resultCode == RESULT_OK){
try {
bitmap = BitmapFactory.decodeStream(getContentResolver().openInputStream(imageUri));
picture.setImageBitmap(bitmap);
}catch(FileNotFoundException e){
e.printStackTrace();
}
}
break;
default:
break;
}
}
}
当活动被取消排序并再次运行时,“imageUri”将重新初始化。因此,为了加载图片,我应该重新打开文件,并在活动取消排序时将其设置为ImageView,然后再次运行,重新初始化“imageUri”。因此,为了加载图片,我应该重新打开文件并将其设置为ImageView您能说明答案是什么来帮助遇到问题的其他人吗?请编辑您的答案并阅读您能说明答案是什么来帮助遇到问题的其他人吗?请编辑您的答案并阅读