添加到ImageView时,下载的位图会失去透明度

时间:2011-09-09 14:08:39

标签: java android transparency imageview

我正在尝试从远程位置显示可能透明的图像,但是当我将其添加到ImageView时,alpha通道似乎是白色的。

我正在使用以下代码下载远程图像:

public static Bitmap loadBitmap(String url) throws IOException {
   int bufferSize = 1024;
   InputStream in  = new BufferedInputStream(new URL(url).openStream(), bufferSize);
   Bitmap bitmap = BitmapFactory.decodeStream(in);

   try {
      in.close();
   } catch (Exception ignored) {

   }
   return bitmap;
}

在我提到Activity的{​​{1}}中,我有以下代码(省略了try-catch):

ImageView

if (bitmap != null) { ImageView imageView = (ImageView) findViewById(R.id.my_image_view); imageView.setImageBitmap(bitmap); } 返回bitmap.getConfig()

我正在针对Android 1.6进行编码,即SDK版本4。

我错过了一些神奇的二传手吗?当我从我的res文件夹中加载与ARGB_8888完全相同的图片时,它可以正常工作。

我注意到Drawable上有一个名为setHasAlpha的setter,但这是自SDK级别12以来。

编辑: 我尝试将我知道的一些像素的颜色透明,颜色为== Bitmap,这是透明的。

2 个答案:

答案 0 :(得分:2)

听起来像ImageView本身有背景。尝试将背景颜色设置为透明(例如,imageView.setBackgroundColor(0);

答案 1 :(得分:0)

将压缩格式用作PNG

BufferedOutputStream bos = new BufferedOutputStream(
                fileOutputStream);
        bmpimg.compress(CompressFormat.PNG, 20, bos);