2017-07-17 132 views
0

我的问题是,当我从相机拍摄照片并传递给其他活动时。图像不是高分辨率。我如何在高分辨率下制作图像?我的代码如下如何获得高分辨率图像

主要活动

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"); 
+1

你没有使用'EXTRA_OUTPUT',文档说:*“如果EXTRA_OUTPUT不存在,那么在额外的字段”* – pskink

+0

中返回一个小尺寸的图像作为位图对象,但实际上你问了同样的问题已经有3次了:每次你被告知要使用'EXTRA_OUTPUT',所以你想多次重复这个问题? – pskink

+0

年。但只有一个Bitmap对象可以在我的应用程序中运行 – Nash

回答

0

添加MediaStore.EXTRA_OUTPUT的意图,并给予路径putExtra指定图片保存路径,否则它只返回拍摄照片不是高分辨率照片。请参阅此doc

标准Intent可以发送的动作让相机应用程序捕捉图像并将其返回。来电者可以通过额外的EXTRA_OUTPUT来控制该图像将被写入的位置。如果EXTRA_OUTPUT不存在,则在额外字段中将小图像作为位图对象返回。这对于只需要小图像的应用程序很有用。如果存在EXTRA_OUTPUT,则全尺寸图像将被写入Uri的值EXTRA_OUTPUT