我想實現一個應用程序,該應用程序將使用相機捕獲圖像並將其顯示在ImageView上。但是,系統會將圖像分辨率調整爲204x153,然後將其顯示在屏幕上,但它會將圖像的原始分辨率(3264x2448)保存在SD卡中。如何顯示原始尺寸的相機拍攝圖像?
這是我的代碼。
buttonCapture.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intentCamera = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
bmpUri = Uri.fromFile(new File(Environment.getExternalStorageDirectory(),
"pic_" + String.valueOf(System.currentTimeMillis()) + ".jpg"));
try {
intentCamera.putExtra("return-data", false);
startActivityForResult(intentCamera, resultOpenCamera);
}
catch (ActivityNotFoundException e) {
e.printStackTrace();
}
}
});
和我的onActivityResult
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == resultOpenCamera && resultCode == RESULT_OK && null != data) {
setContentView(R.layout.preview);
if(data.getAction() != null){
Uri selectedImage = data.getData();
bmpUri = selectedImage;
// display image received on the view
Bundle newBundle = data.getExtras();
Bitmap theImage = (Bitmap) newBundle.get("data");
displayImage(preProcessing(theImage));
System.out.println("theImage height n width = "+theImage.getHeight()+" + "+theImage.getWidth());
}
}
}
我使用的System.out.println跟蹤位圖分辨率從攝像機捕獲。它表明只有204x153。原始分辨率應該是3264x2448。
任何人都知道如何解決這個問題? 非常感謝。
請參考這個問題。它與此相似。 http://stackoverflow.com/questions/5991319/capture-image-from-camera-and-display-in-activity – Scorpion