我的问题是,当我从相机拍照并传递给另一个活动时。图像不是高分辨率。如何以高分辨率制作图像。我的代码在下面
主要活动
Button btn_cam = (Button) findViewById(R.id.btn_cam);
btn_cam.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
MainActivity.this.startActivityForResult(intent, CAMERA_PIC_REQUEST);
}
});
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == CAMERA_PIC_REQUEST && resultCode == RESULT_OK) {
Bitmap image = (Bitmap) data.getExtras().get("data");
Intent cam = new Intent(this, MainCam.class);
cam.putExtra("flostic", image);
startActivity(cam);
第二项活动
Intent intent = getIntent();
imageBitmap = (Bitmap) intent.getParcelableExtra("flostic");
答案 0 :(得分:0)
在意图中添加MediaStore.EXTRA_OUTPUT
,并在putExtra
中指定路径以指定保存图片的路径,因为否则它只返回图片的快照而不是高分辨率图片。请参阅此doc。
可以发送标准Intent
操作,让相机应用程序捕获图像并将其返回。调用者可以传递额外的EXTRA_OUTPUT
来控制该图像的写入位置。如果EXTRA_OUTPUT不存在,则在额外字段中返回小尺寸图像作为Bitmap对象。这对于只需要小图像的应用程序非常有用。如果存在EXTRA_OUTPUT
,则完整尺寸的图片将被写入Uri
的{{1}}值。