在 android lollipop 之前的任何版本上,下面的代码都可以正常工作。
由于某种原因,从 Android 的某个版本(大约 5.0)开始,每当从相机捕获图像时,屏幕都会向右和向后旋转 90 度(不仅我的设备上的自动旋转关闭,我的活动定义为肖像,它根本不应该旋转!)。一旦屏幕旋转回来,ImageView 就会呈现之前的(原始)图像。有什么建议么?
相机意图:
if (result.equals("CAMERA"))
{
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, RESULT_IMAGE_CAPTURE);
}
实际行动:
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
Bitmap bmp = null;
if (requestCode == RESULT_IMAGE_CAPTURE && resultCode == RESULT_OK && data != null)
Bitmap bmp = (Bitmap) data.getExtras().get("data");
if (bmp != null)
{
mProfilePicPath = ImageHandler.saveBitmap(bmp , "", "image_name");
mProfilePic.setImageBitmap(bmp);
}
}
EDIT:显然,当从相机意图返回到我的活动时,不仅仅是调用 onResume() 方法,而是调用 onCreate() 方法,而且不是一次,而是两次!
第一次不是问题,因为 onActivityResult 方法是在它之后调用的。
不过,第二次重新启动 mProfilePic(我的 ImageView)和 mProfilePicPath,我稍后想使用它们。有任何想法吗?
好吧,显然这就是问题(和解决方案) -Activity 被杀死/通过 Intent 拍照后调用 onCreate https://stackoverflow.com/questions/10411009/activity-killed-oncreate-called-after-taking-picture-via-intent
我的清单中没有该行(尽管我确实将我的活动定义为肖像):
android:configChanges="方向|keyboardHidden|screenSize"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)