0
我试图在savedInstanceState中保存ImageButton的路径,以便不会丢失用于旋转手机的图像。但是,只有一次它之后的路径值i等于空(路径== NULL)如何保存ImageButton的状态
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentLayout(R.layout.contact_information_wga800);
if (savedInstanceState != null) {
String profilefirstname = savedInstanceState.getString("firstname");
firstname.setText(profilefirstname);
String profilepath=savedInstanceState.getString("path");
if(profilepath !=null){
imagebutton.setImageBitmap(BitmapFactory.decodeFile(profilepath));
}
}
@Override
public void onSaveInstanceState(Bundle savedInstanceState)
{
savedInstanceState.putString("firstname", firstname.getText().toString());
savedInstanceState.putString("path", media_path);
super.onSaveInstanceState(savedInstanceState);
}
这是一部分,当我用相机或Android图库中ImageButton的位图中设置工作。
switch(requestCode) {
case REQUEST_CAMERA:
if (resultCode == RESULT_OK) {
final Bundle extras = data.getExtras();
bmp = (Bitmap)extras.get("data");
if(bmp != null) {
final File f = this.getFileStreamPath("ping_media.jpg");
if (f.exists()) {
f.delete();
}
try {
final FileOutputStream out = this.openFileOutput("ping_media.jpg",MODE_PRIVATE);
bmp.compress(CompressFormat.JPEG, 12, out);
out.close();
media_path = f.getAbsolutePath();
if(dm.densityDpi>=200) {
contactimg.setImageBitmap(getRoundedCornerBitmap(getResizedBitmap(bmp, 72, 72), 72));
} else if(dm.densityDpi>130 && dm.densityDpi<200) {
contactimg.setImageBitmap(getRoundedCornerBitmap(getResizedBitmap(bmp, 48, 48), 48));
} else {
contactimg.setImageBitmap(getRoundedCornerBitmap(getResizedBitmap(bmp, 32, 32), 32));
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
break ;
case REQUEST_SELECT_PHOTO:
if(resultCode != 0) {
final Cursor c = managedQuery(data.getData(),null,null,null,null);
if (c.moveToFirst()) {
media_path = c.getString(1);
bmp = BitmapFactory.decodeFile(media_path);
contactimg.setImageBitmap(getRoundedCornerBitmap(getResizedBitmap(bmp, 48, 48), 48));
}
}
break;
}
我应该这样做,所以随时旋转手机我没有失去imagebutton的位图。