1

在我的应用程序中,我为用户提供了一个选项,可以从图库中选择图片或从相机中单击它,使用内置的相机和图库功能并为其设置意图。不知何故,在方向更改时,我丢失了从这些意图传递的数据。查找后我才知道方向变化会导致活动重绘和重新初始化。现在我想使用 Bundle 和 OnConfigurationChange 并保存我的附加功能。我对如何实现它一无所知,详细的答案可能会有所帮助。下面是我的代码:

if(i==0){
    Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
    startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST); 
}

protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
    if( requestCode == 1337 && resultCode== Activity.RESULT_OK) {
        Bundle extras = data.getExtras();

        if (extras != null){
            TitmapFactory.Options options = new TitmapFactory.Options();
            options.inSampleSize = 1;
            options.inPurgeable = true;
            options.inInputShareable = true;
            thumbnail = (Titmap) data.getExtras().get("data");
            // imgview.setImageTitmap(thumbnail);
            image(thumbnail);

        } else {
            Toast.makeText(CreateProfile.this, "Picture NOt taken", Toast.LENGTH_LONG).show();
        }
        super.onActivityResult(requestCode, resultCode, data);     
    }
}






     if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && null != data){

         Uri selectedImage = data.getData();

            String[] filePathColumn = { MediaStore.Images.Media.DATA };
            Cursor cursor = getContentResolver().query(selectedImage,filePathColumn, null, null, null);
            cursor.moveToFirst();
            int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
            String picturePath = cursor.getString(columnIndex);
            cursor.close();

            thumbnail = (BitmapFactory.decodeFile(picturePath));



            image(thumbnail);

     }
4

0 回答 0