当屏幕旋转时ImageView的不保留图片 [英] ImageView not retaining Image when Screen rotation occurs
本文介绍了当屏幕旋转时ImageView的不保留图片的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.os.Parcelable;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
public class MainActivity extends Activity {
ImageView iv;
Bitmap bTemp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button cameraClick = (Button) findViewById(R.id.click);
iv = (ImageView) findViewById(R.id.imageView1);
final Bitmap data = (Bitmap) getLastNonConfigurationInstance();
if (data == null) {
iv.setImageBitmap(bTemp);
}
cameraClick.setOnClickListener(myhandler);
}
OnClickListener myhandler = new OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, 0);
}
};
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Bitmap bm = (Bitmap) data.getExtras().get("data");
iv.setImageBitmap(bm);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
@Deprecated
public Object onRetainNonConfigurationInstance() {
bTemp = iv.getDrawingCache();
return bTemp;
}
}
我使用的ImageView来存储它是使用相机拍摄的意图,但是当屏幕旋转图像丢失的图像。 我尝试使用onRetainNonConfigurationInstance(),但它不工作
I'm using a imageview to store the image which is captured using the Camera Intent but when the screen rotates the image is lost. I tried using onRetainNonConfigurationInstance() but its not working
和我不想写的图像å文件。
And i don't want to write the image to afile.
推荐答案
这可以帮助你......
this may help you...
@Override
protected void onSaveInstanceState(Bundle outState) {
BitmapDrawable drawable = (BitmapDrawable) imageView.getDrawable();
Bitmap bitmap = drawable.getBitmap();
outState.putParcelable("image", bitmap);
super.onSaveInstanceState(outState);
}
protected void onCreate(Bundle savedInstanceState) {
if(savedInstanceState != null) {
Bitmap bitmap = savedInstanceState.getParcelable("image");
imageView.setImageBitmap(bitmap);
}
}
这篇关于当屏幕旋转时ImageView的不保留图片的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文