2015-09-30 5 views
0

У меня есть активность, где я делаю снимок, обрезаю изображение, а затем показываю обрезанное изображение. вот мой код.Образ изображения ImageView исчезает при изменении ориентации

public class MainActivity extends Activity { 
    private static final int TakePicture = 1; 
    ImageView imgview; 


    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     imgview = (ImageView) findViewById(R.id.imageView1); 
     Button buttonCamera = (Button) findViewById(R.id.btn_take_camera); 
     buttonCamera.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       // call android default camera 
       Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
       intent.putExtra(MediaStore.EXTRA_OUTPUT,MediaStore.Images.Media.EXTERNAL_CONTENT_URI.toString()); 
       // ******** code for crop image 
       intent.putExtra("crop", "true"); 
       intent.putExtra("aspectX", 0); 
       intent.putExtra("aspectY", 0); 
       intent.putExtra("outputX", 200); 
       intent.putExtra("outputY", 150); 
       try { 
        intent.putExtra("return-data", true); 
        startActivityForResult(intent, TakePicture); 
       } catch (ActivityNotFoundException e) { 
        // Do nothing for now 
       } 
      } 
     }); 
    } 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
       Bundle extras = data.getExtras(); 
      if (extras != null) { 
       Bitmap photo = extras.getParcelable("data"); 
       imgview.setImageBitmap(photo); 
      } 
    } 

} 

Когда я изменяю ориентацию с портрета на пейзаж, изображение, установленное в растровом изображении, исчезнет. Есть ли способ сохранить текущее состояние изображения, даже если ориентация изменилась с ландшафта на портрет или наоборот.?

ответ

-1

У вас нет способа, который сохраняет текущее состояние вашего приложения. Используйте для использования. onSaveInstanceState. Здесь Вы можете найти все о деятельности и сохранение ценности: http://developer.android.com/reference/android/app/Activity.html

Сердечные приветы

+0

Пример, безусловно, поможет. – user3841581

0

я добавил метод, который сохраняет текущее состояние приложения ..

@Override 
protected void onRestoreInstanceState(Bundle savedInstanceState) { 
    image = savedInstanceState.getParcelable("BitmapImage"); 
    this.photo = image; 
    imageView.setImageBitmap(photo); 
    super.onRestoreInstanceState(savedInstanceState); 
} 
@Override 
protected void onSaveInstanceState (Bundle savedInstanceState) { 
    savedInstanceState.putParcelable("BitmapImage", photo); 
    super.onSaveInstanceState(savedInstanceState); 
} 

я надеюсь, что это поможет другим ..

Смежные вопросы