从相机意图中获取位图图像作为缩略图.如何让它变得更大



我正在尝试打开我的相机应用程序,并将图像放到图像视图中。即使我对图像视图的宽度和高度使用换行内容,它也会显示为缩略图。我已经看到了几个调整大小的帖子,不确定该用哪一个。问题是,我想要图像的原样,即全尺寸,而不是缩略图。以下是我尝试过的:

inside a button click event:   
 Intent cameraIntent = new Intent(
                android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
        startActivityForResult(cameraIntent, 111);

@Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            // TODO Auto-generated method stub
            if (resultCode == RESULT_OK && requestCode == 111) {
                Bitmap photo = (Bitmap) data.getExtras().get("data");
                preview.setImageBitmap(photo);
}

我正在尝试将图像显示为图像视图中的预览。问题是我想要一个更大的形象。当我尝试将imageview的宽度和高度更改为300px和150px时,我会得到一个空白。

如何获得更大的图像?

编辑:

Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
         File file = new File(Environment.getExternalStorageDirectory()+File.separator + "image.jpg");
         intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file));
         startActivityForResult(intent, CAPTURE_IMAGE_FULLSIZE_ACTIVITY_REQUEST_CODE);

In on活动结果:

if (requestCode == CAPTURE_IMAGE_FULLSIZE_ACTIVITY_REQUEST_CODE)
                    {
                        //Get our saved file into a bitmap object:
                       File file = new File(Environment.getExternalStorageDirectory()+File.separator + "image.jpg");
                       Bitmap bitmap = decodeSampledBitmapFromFile(file.getAbsolutePath(), 1000, 700);
                       preview.setImageBitmap(bitmap);
                    }
public static Bitmap decodeSampledBitmapFromFile(String path, int reqWidth, int reqHeight)
        { // BEST QUALITY MATCH
            //First decode with inJustDecodeBounds=true to check dimensions
            final BitmapFactory.Options options = new BitmapFactory.Options();
            options.inJustDecodeBounds = true;
            BitmapFactory.decodeFile(path, options);
            // Calculate inSampleSize, Raw height and width of image
            final int height = options.outHeight;
            final int width = options.outWidth;
            options.inPreferredConfig = Bitmap.Config.RGB_565;
            int inSampleSize = 1;
            if (height > reqHeight)
            {
                inSampleSize = Math.round((float)height / (float)reqHeight);
            }
            int expectedWidth = width / inSampleSize;
            if (expectedWidth > reqWidth)
            {
                //if(Math.round((float)width / (float)reqWidth) > inSampleSize) // If bigger SampSize..
                inSampleSize = Math.round((float)width / (float)reqWidth);
            }
            options.inSampleSize = inSampleSize;
            // Decode bitmap with inSampleSize set
            options.inJustDecodeBounds = false;
            return BitmapFactory.decodeFile(path, options);
        }

但我还是一样大。

您必须为Intent提供一个putExtra选项和存储它的文件名。额外的数据只是一个快照。

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(filePath)));

它会将图像保存到指定的位置(只要它是可写的)

相关内容

最新更新