为什么模糊图像出现在简单的Android相机应用程序中?

时间:2015-08-20 15:00:01

标签: android android-camera android-imageview

我尝试制作一个简单的相机应用,捕捉图像并在图像视图中查看图像: 我在MainActivity中尝试了这段代码:

 ImageView myImageView;

public void myButtonCamera (View view){
    Intent cameraIntent = new Intent (android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
    startActivityForResult(cameraIntent, 10);

}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data){
    super.onActivityResult(requestCode,resultCode,data);
    if (resultCode == RESULT_OK){
        if (requestCode == 10){
            Bitmap cameraCapture;
            cameraCapture = (Bitmap)data.getExtras().get("data");
            myImageView.setImageBitmap(cameraCapture);
        }
    }

}

该应用程序可以工作并捕获图像,但在ImageView中查看后,它会模糊图像。 我试图将ImageView的高度和宽度属性设置为wrap_content,在测试应用程序后,我注意到捕获的图像分辨率非常小!因为观看图像的尺寸非常小!

1 个答案:

答案 0 :(得分:7)

  

我注意到拍摄的图像分辨率非常小!

这就是您的代码所要求的。引用the documentation for ACTION_IMAGE_CAPTURE

  

调用者可以传递额外的EXTRA_OUTPUT来控制该图像的写入位置。如果EXTRA_OUTPUT不存在,则在额外字段中返回一个小尺寸图像作为Bitmap对象。

如果您需要全分辨率图像,请使用ls = [(item,st.find(item)) for item in lst if st.find(item)!=-1] 在外部存储上指示您希望相机应用程序写入全分辨率图像的文件:

EXTRA_OUTPUT

(来自this sample project