Android相机高度和宽度

时间:2017-10-11 07:00:06

标签: android android-camera android-camera-intent

我目前正在进行故障报告页面,最终用户可以通过使用相机捕捉或从图库中选择照片来报告image。我不确定为什么,但是当使用相机拍摄image时,heightwidth返回的220约为180,这是非常模糊的图片。我曾尝试在线查找其他教程,但我的代码似乎与其他代码相同。不太确定它是我的手机还是什么。

我的Camera Intent代码:

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, REQUEST_CAMERA);

从相机中捕获图像后的代码:

thumbnail = (Bitmap) data.getExtras().get("data");
bytes = new ByteArrayOutputStream();
thumbnail.compress(Bitmap.CompressFormat.JPEG, 100, bytes);

ivImage.setVisibility(View.VISIBLE);
ivImage.setImageBitmap(thumbnail);

我尝试在压缩之前和之后获取widthheight,两者都返回相同的值。

1 个答案:

答案 0 :(得分:0)

可能你不应该压缩图像而只是简单地使用BitmapFactory.decodeFile(filePath)或任何合适的方法将你的图像从文件转换为bitmap(如果还没有),然后将位图对象设置为ImageResource是这样的:

Bitmap bitmap = BitmapFactory.decodeFile(filePath);
mImageView.setImageBitmap(bitmap);

并且不要简单地输入从意图收到的数据。据我所知,相机活动类,它将返回捕获图像的URI。尝试像onActivityResult()这样收到它:

   @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (resultCode != RESULT_OK) return;

        if (requestCode == REQUEST_CAMERA) {
            Uri photoUri = data.getData();
            // Calculate the bitmap here according to the width of the device
            ((ImageView) findViewById(R.id.captured_image)).setImageBitmap(bitmap);
        }
        super.onActivityResult(requestCode, resultCode, data);
    }