我在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图像?
答案 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);