Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何添加新功能以重新加载相机图片_Android_Android Intent_Android Activity - Fatal编程技术网

Android 如何添加新功能以重新加载相机图片

Android 如何添加新功能以重新加载相机图片,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

1.这些代码用于调用camera和crop image pictured,并将图像保存在externalStorageDirectory中。此功能工作正常

2.但问题是:当我退出这个应用程序并再次运行它时,它无法加载图像

MainActivity.java

     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

您能说明答案是什么来帮助遇到问题的其他人吗?请编辑您的答案并阅读您能说明答案是什么来帮助遇到问题的其他人吗?请编辑您的答案并阅读