复制到图库的Android透明图片获得纯黑色背景

Posted

技术标签:

【中文标题】复制到图库的Android透明图片获得纯黑色背景【英文标题】:Android transparent images copied to gallery obtain solid black background 【发布时间】:2013-02-09 15:35:51 【问题描述】:

我使用以下语句将图像从资产复制到图库应用,效果很好:

MediaStore.Images.Media.insertImage(getContentResolver(), myBitmap, myTitle ,  myDescription);

图像是具有透明背景的 png 文件。当我将它们从资产加载到 ImageView 时,它们会正确显示。

问题是,以前导入图像的透明背景在图库中变成了纯黑色。

png 是由 gimp 创建的 png24。我还尝试了 Apple 的预览应用程序添加的透明 gif 和具有透明度的 png,结果相同。

为什么会这样?

【问题讨论】:

您是否尝试过使用文件路径参数的第二种方法?结果一样吗? 是的,这里也一样。我还明确设置了支持 alpha 通道的格式:没有变化:BitmapFactory.Options options = new BitmapFactory.Options(); options.inPreferredConfig = Bitmap.Config.ARGB_8888; Bitmap myBitmap = BitmapFactory.decodeFile(ctx.getFilesDir().getAbsolutePath()+java.io.File.separator+"locos"+"/BR03_1049.png", options); MediaStore.Images.Media.insertImage(ctx.getContentResolver(),myBitmap,"standardlok" , "ohne" ); 【参考方案1】:

我知道这是一个老问题,但我也遇到了同样的问题。问题是MediaStore.Images.Media.insertImage 存储的文件的 MIME_TYPE 为“image/jpeg”,而 jpeg 不支持透明度。

一种解决方案是制作您自己的使用另一种图像格式的内容提供商。 Picasso 图片库可能也值得一看。

【讨论】:

以上是关于复制到图库的Android透明图片获得纯黑色背景的主要内容,如果未能解决你的问题,请参考以下文章

android黑色边框如何去掉

具有透明背景的 UITableView 具有纯黑色边框

mfc中让编辑框透明为啥总显示黑色背景的编辑框啊?

全黑界面更省电和护眼?教你打造纯黑色 Android 系统

Android opengl 画文字,怎么把文字后面的黑色背景去掉

怎么通过代码把图片的黑色背景变成透明的?