设置使用相机拍摄的照片作为在imageview中的缩略图

时间:2014-02-15 08:44:25

标签: android

我使用以下代码段(来自SO here)来显示使用相机作为缩略图拍摄的照片。但图片的缩略图没有显示并保持空白。可能是什么原因?

    Bundle extras = data.getExtras();
                if(extras.get("data") != null){
                    Bitmap imageBitmap = (Bitmap) extras.get("data");
   // Get the dimensions of the View
    int targetW = imgViewPreview.getWidth();
    int targetH = imgViewPreview.getHeight();

    // Get the dimensions of the bitmap
    BitmapFactory.Options bmOptions = new BitmapFactory.Options();
    bmOptions.inJustDecodeBounds = true;
    Bitmap bitmap = Bitmap.createScaledBitmap(picture, targetW, targetH, true);
    imgViewPreview.setVisibility(View.VISIBLE);
    imgViewPreview.setImageBitmap(imageBitmap);
}

2 个答案:

答案 0 :(得分:1)

bmOptions.inJustDecodeBounds = true;

将导致不返回实际的Bitmap。它旨在读取有关位图的信息(例如宽度/高度),而不是此时实际将所有内容都加载到内存中。

- > inJustDecodeBounds

我建议查看有关显示位图的官方Android SDK文档的链接: Link

答案 1 :(得分:1)

这就是你的问题......

Bitmap bitmap = Bitmap.createScaledBitmap(picture, targetW, targetH, true);

在这里,您传递图片,而不是传递 imageBitmap ,这是您拍摄的照片。所以,你正确的代码将是......

Bitmap bitmap = Bitmap.createScaledBitmap(imageBitmap, targetW, targetH, true);