カメラを使用して画像をキャプチャし、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 である必要があります。
誰でもこれを解決する方法を知っていますか?? どうもありがとう。