在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);
}
}
编辑:显然当从相机意图返回我的活动时,而不仅仅是要调用的onResume()方法,onCreate()方法被调用,而不仅仅是一次,但是两次! 第一次不是问题,因为onActivityResult方法在它之后调用。 但是,第二次重新启动mProfilePic(我的ImageView)和mProfilePicPath,我想稍后使用它。有什么想法吗?
答案 0 :(得分:2)
好的,显然这是问题(和解决方案) - Activity killed / onCreate called after taking picture via intent
我的清单中没有该行(虽然我确实将我的活动定义为肖像): 机器人:configChanges = “取向| keyboardHidden |屏幕尺寸”