onActivityResult未调用方向更改

时间:2012-07-23 12:51:51

标签: android save android-activity android-camera android-orientation

我一直在尝试从我的应用程序启动相机活动,以拍摄并保存稍后将被重载的照片。 我使用此代码启动相机并保存文件:

public Bitmap photo;  //the var the captured picture gets saved in.

//Inside the onCreate.
cameraButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
        startActivityForResult(cameraIntent, CAMERA_REQUEST);
    }
});

//The onActivityResult
protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
    //Gets the photo
    photo = (Bitmap) data.getExtras().get("data");
} 


//this is called from the donebutton's onClickListener
protected void savePicture(String name, Bitmap picture)
{
    try
    { 
        FileOutputStream fOut = new FileOutputStream( Menu.savePath + TransServActivity.fileName + "/" + name + "Problem.png");
        picture.compress(Bitmap.CompressFormat.PNG, 90, fOut);
    }

    catch(Exception e)
    {
        //Puts the error in an error log.
        //TODO put in error log
        Toast.makeText(getBaseContext(), e.getMessage(), Toast.LENGTH_SHORT).show();
    }
}

活动在Manifest.xml中以纵向方向锁定,如果您以纵向方式捕获并保存照片,则代码就像魅力一样。 但是,如果您在设备处于横向方向时捕获并保存照片,则此活动将以横向模式重新显示,然后强制进入纵向。

这使得我保存Bitmap的变量变为null,并且在单击完成按钮时不会保存。我甚至不确定是否会调用onActivityResult()。

有关如何解决此问题的任何想法?

非常感谢,感谢我能得到的任何帮助//大卫

0 个答案:

没有答案