我使用以下代码段(来自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);
}
答案 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);