Android图片粘上后仍错误,android – 在Activity被销毁后,ImageView上的图像丢失了
我正在嘗試創建一個應用程序,我可以讓用戶選擇要在其個人資料中顯示的圖片.我可以在imageview上瀏覽和設置他們選擇的圖像.但是一旦活動被破壞,圖像就會丟失.我試圖實現onSaveInstanceState,但它仍然是相同的.我想知道我是否正確使用它.我希望你能幫助像我這樣的新手.提前致謝.這是我正在使用的代碼:
public class AccountFragment extends Fragment implements OnClickListener {
private LoginDataBaseAdapter loginDataBaseAdapter;
Bitmap image;
Bitmap bitmap;
String picture_location;
TextView textTargetUri;
ImageView targetImage;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_account, container, false);
textTargetUri = (TextView) rootView.findViewById(R.id.targeturi);
targetImage=(ImageView) rootView.findViewById(R.id.profpic);
targetImage.setOnClickListener(new ImageView.OnClickListener(){
@Override
public void onClick(View arg0) {
Intent intent = new Intent(Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, 0);
}});
if (savedInstanceState != null) {
//if there is a bundle, use the saved image resource (if one is there)
image = savedInstanceState.getParcelable("BitmapImage");
targetImage.setImageBitmap(image);
textTargetUri.setText(savedInstanceState.getString("path_to_picture"));
}
return rootView;
}
@Override
public void onSaveInstanceState(Bundle savedInstanceState){
super.onSaveInstanceState(savedInstanceState);
savedInstanceState.putParcelable("BitmapImage", bitmap);
savedInstanceState.putString("path_to_picture", picture_location);
}
@Override
public void onActivityResult( int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == Activity.RESULT_OK){
Uri targetUri = data.getData();
picture_location = targetUri.toString();
textTargetUri.setText(targetUri.toString());
Bitmap bitmap;
try {
bitmap = BitmapFactory.decodeStream(getActivity().getContentResolver().openInputStream(targetUri));
targetImage.setImageBitmap(bitmap);
}
catch (FileNotFoundException e){
e.printStackTrace();
}
}
}
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
}}
順便說一句,你可能已經注意到,在oncreate之后我沒有使用onRestoreInstanceState,而是嘗試使用不同的方法.我從另一個問題中找到了答案,你也可以在oncreate中實現它.我使用它,因為每當我聲明函數onRestoreInstanceState時,我都會被要求刪除@Override注釋.
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState){
image = savedInstanceState.getParcelable("BitmapImage");
targetImage.setImageBitmap(image);
textTargetUri.setText(savedInstanceState.getString("path_to_picture"));
}
總結
以上是生活随笔為你收集整理的Android图片粘上后仍错误,android – 在Activity被销毁后,ImageView上的图像丢失了的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android最大json,Androi
- 下一篇: 单个像素 亮度 HTML,YUV与像素值