Android的SD卡显示PNG图像

时间:2011-02-03 12:34:57

标签: android image png transparency sd-card

我在SD卡中保存了一个透明的PNG图像。我现在要显示。我正在使用以下代码。

selected_photo = (ImageView) findViewById(R.id.selected_photo);
Uri photoUri = Uri.parse(photoPath);
                        selected_photo.setImageBitmap(MediaStore.Images.Media.getBitmap(getContentResolver(),photoUri));

但它在显示中给出了一个不透明的图像。如何在不丢失透明度的情况下显示PNG图像?

1 个答案:

答案 0 :(得分:5)

MediaStore API可能会丢弃alpha通道(即解码为RGB565)。如果你有一个文件路径,只需直接使用BitmapFactory,但告诉它使用保留alpha的格式:

BitmapFactory.Options options = new BitmapFactory.Options();
options.inPreferredConfig = Bitmap.Config.ARGB_8888;
Bitmap bitmap = BitmapFactory.decodeFile(photoPath, options);
selected_photo.setImageBitmap(bitmap);