0

我使用意图从 SD 卡中选择了一张图像,在选择图像后,我在图像查看器中显示了该图像并且它正在显示,但是当我旋转屏幕时,所选图像没有出现,帮帮我?

我使用了浏览屏幕的意图-

public void onClick(View v) {   
   Intent intent = new Intent();     
   intent.setType("image/*");
   intent.setAction(Intent.ACTION_GET_CONTENT);    
   startActivityForResult(Intent.createChooser(intent, "Choose Key Picture"), PICK_FROM_FILE);
}

并展示它

if (requestCode == PICK_FROM_FILE) {        
   mImageCaptureUri = data.getData();
   path = getRealPathFromURI(mImageCaptureUri); 
   if (path == null) {
      path = mImageCaptureUri.getPath(); 
   }
   if (path != null) {
      bitmap  = BitmapFactory.decodeFile(path);
   }
}
preview.setImageBitmap(bitmap);   
4

2 回答 2

0

问题在于,在屏幕旋转期间,Android 系统会重新创建您的活动,以使您的布局能够适应新的屏幕配置。

如果旋转屏幕后图像消失,有两种方法可以解决此问题。

第一种也是最简单的方法:将以下内容添加到清单中的活动声明中:

android:configChanges="orientation|keyboardHidden|keyboard"

这将告诉 Android 系统在屏幕旋转期间不要重新创建您的活动。

另一种方法是在活动的onSaveInstanceState方法中保存图像的路径,并在重新创建活动后重新加载图像。这将帮助您解决由于内存问题而导致您的活动被终止的错误(例如,如果您的应用程序正在运行并且有人调用)。在此之后,应该使用相同的重新创建过程。

无论您选择哪种方式,请仔细查看活动生命周期文档。了解这一点是了解整个 Android 系统如何工作的关键。

于 2012-01-10T06:59:09.007 回答
0

你可以在 android manifest 中添加一些行作为 onsurfacechange="orientation" 所以你什么时候改变你的屏幕旋转而不是什么都不会发生所以你的图像会像以前一样

于 2012-01-12T07:34:02.383 回答