首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android - PNG图像有alpha通道,但在imageview中显示为白色背景。我该怎么修复呢?

在Android中,PNG图像通常支持alpha通道,用于实现图像的透明效果。然而,有时在ImageView中显示PNG图像时,可能会出现白色背景的问题。这通常是由于ImageView的背景色覆盖了图像的透明部分所导致的。

要修复这个问题,你可以尝试以下几种方法:

  1. 设置ImageView的背景色为透明: 在布局文件中,将ImageView的背景色设置为透明色,可以通过设置android:background="@android:color/transparent"来实现。这样,ImageView的背景色就不会覆盖PNG图像的透明部分。
  2. 使用带有透明背景的ImageView: 如果你的PNG图像的背景是透明的,你可以使用带有透明背景的ImageView来显示图像。你可以在布局文件中设置ImageView的背景为透明色,然后将PNG图像设置为ImageView的src属性。
  3. 使用带有透明背景的Drawable: 如果以上方法无效,你可以尝试创建一个带有透明背景的Drawable,并将其设置为ImageView的背景或src属性。你可以使用以下代码创建一个透明背景的Drawable:Drawable transparentDrawable = new ColorDrawable(Color.TRANSPARENT);
  4. 使用支持透明背景的第三方库: 如果以上方法仍然无效,你可以考虑使用一些第三方库来显示PNG图像,这些库通常提供更多的定制化选项和解决方案。例如,Glide和Picasso是两个常用的图片加载库,它们支持透明背景的PNG图像显示。

需要注意的是,以上方法中的某些方法可能适用于特定的情况,你可以根据自己的需求选择合适的方法进行修复。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云图片处理(Image Processing):提供了丰富的图片处理功能,包括格式转换、缩放、裁剪等,可以用于处理PNG图像。 产品介绍链接:https://cloud.tencent.com/product/img

请注意,以上答案仅供参考,具体修复方法可能需要根据实际情况进行调整和尝试。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

白夜追凶 :手 Q 图片的显示和发送逻辑

一层层看代码,整理总结了手q图片的显示和发送逻辑,以及对透明通道图片的特殊处理。 一、黑背景?白背景?...很容易就能发现两个场景处理图片的不同:快捷发图栏将png图片获取bitmap,再压缩成jpeg,这个过程直接忽略了透明通道android默认处理的结果就是一张黑色背景的jpeg。...回归问题的时候用了另外一张png图片测试,咦,怎么这张图片在AIO背景是黑色的?...两个怀疑方向:1、png压缩成jpeg的过程,丢失透明通道导致AIO这张图片黑色背景;2、有没有可能是在canvas上绘制白色背景失败导致的问题?...有没有可能是png输出bitmap的过程奇葩的策略调整config的值导致ALPHA通道遗失?于是一步步断点跟踪这块的代码,很遗憾没发现异常。

2K20

网易考拉 Android 通知栏适配全方案

从图中可以看出,1.X-2.2版本的通知栏采用了白色背景和黑色字体;2.3-4.X版本,默认背景变成了黑色,而主标题采用白色字体,内容灰色字体。...系统会忽略所有non-alpha通道的图标,包括按钮图标和主图标。 可以通过setColor()方法在图标后设置一个背景色。...解决方案 与小图标显示异常解决方案类似,将小图标替换为透明背景PNG图片。...Android通知栏的背景几种情况,白色、暗色、暗色透明和黑色。如果生成的Bitmap带背景色,这个背景色就很难选择。如果选择黑色背景,那么在白色通知栏的机型上就很难看。...其中,我们需要“拥抱变化”的内容: 使用non-alpha图标 在5.0修改记录一条系统会忽略所有non-alpha通道的图标,包括按钮图标和主图标。这句话是什么意思

5.2K11
  • Android 开发绕不过的坑:你的 Bitmap 究竟占多大内存?

    说得简单一点儿,一个极品飞车的免安装硬盘版的压缩包放在的磁盘里面,这个游戏是不能玩的,需要先解压,才能玩——jpg 也好,png 也好就是个压缩包的概念,而我们讨论的内存占用则是从使用角度来讨论的...不过,抛开 Android 这个平台不谈,从出图的角度来看的话,jpg 格式的图片大小也不一定比 png 的小,这要取决于图像信息的内容: JPG 不适用于所含颜色很少、具有大块颜色相近的区域或亮度差异十分明显的较简单的图片...如果需要 alpha 通道,那么没有别的选择,用 png。 你的图色值丰富还是单调?就像刚才提到的,如果色值丰富,那么用jpg,如果作为按钮的背景,请用 png。 对安装包大小的要求是否非常严格?...内存是小了,可是图的尺寸也小了啊,要用 Canvas 绘制这张图可怎么办?...如果要把图片放到 ImageView 当中

    3.3K111

    使用Python给图片添加水印

    然而,shape属性的最后一个数字不同:JPG是3,而PNG是4。让我们显示numpy数组以查看差异。 每个数组内的值表示每个像素的颜色。...如上图2所示,PNG支持透明度(即alpha通道),但JPG没有。 这里需要注意: 1.RGB的值255表示每种颜色的最大值。将所有三个值设为最大值(255,255,255)基本上是白色。...2.alpha通道的值255表示不透明;而alpha0表示完全透明。 Pillow库使JPG文件转换为PNG格式变得非常容易。...我们可以通过将图像上所有白色像素的alpha通道设置0(透明)来“删除”白色背景。...换句话说,对于每个RGB值[255,255,255,180]的像素,我们将alpha通道设置0,以使像素完全透明。 由于我们已经将图像的RGBA值放入Numpy数组,因此操纵颜色很容易。

    2.3K30

    常用控件之ImageView的使用(一)

    ZoomButton ImageView图像视图),直接继承自View类,它的主要功能是用于显示图片,实际上它不仅仅可以用来显示图片,任何Drawable对象都可以使用 ImageView显示。...ImageView可以适用于任何布局,并且Android其提供了缩放和着色的一些操作。 一....Layout再设置一个 android:background属性也可以做到展示图片,为什么还要特地去使用 ImageView?...对于 android:scaleType属性,因为关于图像ImageView显示效果,所以有如下属性值可以选择: matrix:使用 matrix方式进行缩放。...加载SD卡的图片 在上述,只是简单的介绍加载资源文件的图片以及ImageView的一些基本属性,接下来,我们大家讲解如何加载SD卡的图片,并且我们考虑到部分小伙伴对Android很感兴趣,但是都是使用自己的手机来进行调试

    1.7K20

    Android 天气APP(十一)未来七天的天气预报、逐小时预报、UI优化

    ,试问,这里一篇20万字的博客,你要不要看一下?...作为开发者你就要对自己的APP负责了,所以就需要你的身份证号码和正反面照片了,还是应用的名称及应用的类型,相信你们也知道怎么填,填完之后点击同意并变更 然后就会进入审核阶段, ?...将默认的红色改成白色 ? 然后点击确定,再点一次,回到PS主页面,可以看到就变成白色了 ? 接下来保存图标,点击左上角的文件->存储 ?...格式保存为png格式,然后就是覆盖它原来的蓝色图标,然后一路保存,最后看到你的文件夹的图标就变成白色的了。 ? 好了,还有那么多图标,你慢慢改,不着急。磨刀不误砍柴工啊。...999.png 七天的天气预报和UI优化 在修改图标颜色的过程,发现有好几个天气代码的图标是一模一样的,所以代码判断显示的时候会有几个状态码对应的图标一样,提前说明,不要见怪。

    88020

    OpenCV | 基于Android系统详析Mat与Bitmap对象(创建、初始化、使用与转换 | 附大量demo)

    常见的通道数目1、3、4,分别对应于单通道、三通道、四通道,其中四通道通常会有透明通道的数据; 图像深度表示每个通道灰度值所占的大小,图像深度与类型密切相关; OpenCV中常见的几种图像深度:...在如上的七行类型表,每个类型都可以做类似的解读; 也可以看出CV_8U就是图像深度,所以图像类型与深度之间是直接关系的。...在OpenCV,颜色向量通常用Scalar表示,这里Scalar(255,255,255)表示白色。...其中: A表示透明通道; R表示红色通道; G表示绿色通道; B表示蓝色通道。 其中ALPHA_8表示图像只有透明通道而没有颜色通道,是一张透明通道图像, 这种图像通常会被用作mask图像。...4.2 内存与显示Android系统,将图像资源文件直接加载OpenCV的Mat对象,可以避免Bitmap加载大图像出现的OOM问题; 使用Mat对象对图像完成操作之后,所有的临时Mat对象都应该调用

    7K63

    Android OCR文字识别 实时扫描手机号(极速扫描单行文本方案)

    正好开始了一帧画面的解析,那等到开始解析手机号,至少也在几百毫秒以后了,加上手机号本身的解析时间,从对准到拿到结果,随随便便就超过了1秒,加上每次识别速度不定,可能特殊情况耗时更久,这样必然会感到很明显的延迟,那怎么处理...--显示被裁切出的图片,需要setTag到CameraView,详见上面CameraView代码--> <ImageView android:id="@+id/main_image...这里做出了一些过滤 (下面的过滤算法,只适用于和我的需求类似的场景(扫描手机号、单行文本)) 怎么过滤?先来想想场景,什么样的图片可以认为图中可能有手机号?...* * 转为二值图像 并判断图像是否可能有手机号 * * @param bmp 原图bitmap * @param tmp 二值化阈值 超出阈值的像素置白色,...* 转为二值图像 并判断图像是否可能有手机号 * * @param bmp 原图bitmap * @param imageView 显示当前图片处理进度,测试用

    9.3K21

    Android-Bitmap

    image.png ? image.png 1.1.问题一:第一张图片显示薛之涛.jpg的大小是3.50kb,为什么占用空间不是3.50kb而是4.00kb?...在计算内存大小之前我们先普及相关知识: 在安卓系统默认bitmap图片一般32位(ARGB_8888),16位(ARGB_4444,ARGB_565),8位(ALPHA_8),我们来说一下其含义:...ALPHA_8含义:ALPHA代表像素只保存透明度,所以其每单位像素的计算公式: 单位像素ALPHA_8占位计算8bit等于1byte内存 Android图片四种颜色格式 ?...16位图像相比8位图像较好的色彩过渡,更加细腻,携带的色彩信息可以更加丰富。其他位类同。 如果一个8位图像10MB大小,它变成16时,大小就要翻一翻变成20MB。其他位类同。...(2):同一图片,放在 res 内相同的资源目录下,但在不同 dpi 的设备,图片占用的内存空间也是会不一样的。

    1.4K20

    高性能图片优化方案

    heapsize(虚拟机的内存配置)越大越不容易 OOM,Android8.0 及之后的版本更不容易 OOM,这个如何理解?...Android.graphics.Bitmap 类里一个内部类 Bitmap.Config 类,它定义了可以在 Android 中使用的几种色彩格式:public enum Config { ALPHA...解决方案怎么做?...使用这个字段几点限制:声明可被复用的Bitmap必须设置inMutabletrue;Android4.4(API 19)之前只有格式jpg、png,同等宽高(要求苛刻),inSampleSize...方案5:遮罩还是使用setXfermode,不过与方法一不同的是:不对图片作任何更改,只在圆角之外再画一层与背景颜色相同的四个角来遮挡,在视觉上造成圆角图片的效果。那个切割圆角怎么优化

    84330

    【IOS 开发】基本 UI 控件详解 (UISegmentedControl | UIImageView | UIProgressView | UISlider | UIAlertView )

    风格; -- White : 白色风格; -- Gray : 灰色风格; (2) Color 属性 Color 属性 :  -- 作用 : 设置进度条的颜色, 设置属性会覆盖之前选中的风格的颜色;...UIAlertView : 调用显示 UIAlertView 的显示方法; -- 监听按钮 : 委托对象实现 UIAlertViewDelegate 协议的方法即可; (2) UIAlertViewDelegate...UIActionSheet 简介 (1) UIActionSheet 作用 UIActionSheet 作用 : 控件是显示在界面底部的按钮列表, 控件 一个标题 和 多个按钮; (2) UIActionSheet...按钮 UIActionSheet 固定按钮 :  -- 取消按钮 : 灰色背景, 主要用于取消 UIActionSheet 控件显示; -- 销毁按钮 : 红色背景, 用于删除某记录时, 使用按钮确认销毁...: 透明黑色背景显示白色文字; -- UIActionSheetBlackOpaque : 纯黑的背景显示白色文字; 2.

    2.9K40

    Python完成SVG转PNG格式——方法二

    一、前情提要 在Python完成SVG转PNG格式,虽然图片格式成功转换了,但是会出现几个问题,如下所示 1、原本透明背景的SVG格式图片,转换成PNG格式之后,图片变成了白色背景 白色背景变透明的方法可看我上一篇文章...python把png白色背景变透明 image.png image.png 2、有的图片在成功转换之后出现了奇怪的线 image.png 3、控制台出现报错 image.png总结 总结: 1、会出现白色背景...,是因为 renderPM 模块转换出来的PNG格式的图片是24位深的,即只能控制RGB通道,所以,会从透明背景变成白色背景,无法避免,只能转换完成之后再处理; 2、出现奇怪的线,是因为 renderPM...,是因为 renderPM 模块,是读取了SVG格式的图片内容之后,再在一块画布上画出PNG格式的图像,但是此时的PNG图像只有24位深了,所以控制透明背景Alpha 通道只能与另外三个共线了。...SvgToPng.ui 这个是用Qt设计师画的界面,和我方法一的那个界面一模一样,没变化,想参考的话,可以过去跟着画一下,Python完成SVG转PNG格式 # -*- coding: utf-8

    5.3K30

    现代图片性能优化及体验优化指南 - 图片类型及 Picture 标签的使用

    后来 Alvy Ray Smith 提出每个像素再增加一个 Alpha 通道,取值0到1,用来储存这个像素是否对图片「贡献」,0代表透明、1代表不透明。...其主要特点: 与传统图像格式(例如JPEG、GIF和PNG)相比,有着更佳的效率与更丰富的功能 全面支持广色域和 HDR,支持 Alpha 通道,支持多帧(也就是动画支持) 有损压缩时:相同的视觉质量...那么 元素的作用是什么? 元素通过包含零或多个 元素和一个 元素来不同的显示/设备场景提供图像版本。...怎么使用 元素?...没错,就是一种渐进增强的思想,怎么? 只能是 JavaScript 去写对应的逻辑,通过 JS 脚本进行特性查询,动态赋值给 的 src。

    1.1K10

    高仿支付宝9.9.2版本生活模块界面来讲解CoordinatorLayout,AppBarLayout,CollapsingToolbarLayout

    fangzhifubao.gif 是不是很像支付宝的效果,我们今天就要通过讲解android5.0新出的控件CoordinatorLayout,AppBarLayout,CollapsingToolbarLayout...在讲解之前先看看界面布局文件,在一个一个讲讲怎么实现吧: <android.support.design.widget.CoordinatorLayout xmlns:android="http:...在各个布局文件里,最外围的是CoordinatorLayout这个控件,这个什么作用,就的大白话来说就是协调子View之间动作的一个父View,通过Behavior来给子view实现交互的。...当verticalOffset=0的时候即使整个展开的是时候要做的就是显示显示的,隐藏要隐藏的设置,在设置透明度,同理当verticalOffset等于appBarLayout.getTotalScrollRange...当alpha小于0的时候是执行展开的toolbar的透明度效果,反之大于0的时候是闭合时toolbar的透明图效果。 剩下的看源码吧 如果对你帮助就请给我给星星或喜欢吧

    1.1K20

    在React Native构建启动屏

    在网络应用,我们使用预加载器用户提供动画娱乐,同时服务器操作正在处理。尽管这听起来很直接,但它是构建和保留用户群的关键工具。 在React Native创建启动屏很多好处。...大多数经验的设计师可以从零开始两种设备创建所需的启动画面分辨率。 然而,许多可用的第三方工具可以帮助你Android和iOS创建启动屏幕。...将内容模式设置“aspect fit”,如下所示: 更改iOS启动屏幕颜色 你可能会问的下一个问题是“如何在 React Native 更改启动屏幕的背景颜色?”...为了在 iOS 启动屏幕强制使用一致的背景,滚动到背景设置位置并从下拉菜单中选择 Custom。在弹出窗口中,选择启动屏幕的期望颜色。.../assets/favicon.png" } } } 如果你观察上面代码的 splash 值(对象),你会看到我们的启动图像指向我们的 assets 文件夹,那里默认的启动图像

    51610

    基础 | 前端图片选择问题

    然而png32在ie6上并不能表现为透明。 png24 其实png24本身是不透明的,因为其并没有那8位的alpha通道。在fireworks我们可以很好地看到这一特点。...图中下为png32,上png8+alpha透明。 可以看出,png8对于半透明,不错的支持性。同时,因为其比较小的体积。...之前也提及到了,png8的alpha透明对于半透明,只是不错的支持性,其真正的表现事实上还是不如png32。在测试过程中发现,png8采用alpha透明,依然会出现一些毛边。...当选择了杂边无的时候,所有的半透明转换为了不透明,也就产生了锯齿。那如何解决这些锯齿? 刚刚将四周白色,变为无的杂边的选项,其实就是ps对于锯齿的一个解决方法。...如果这张图的需求是在纯色的背景下的话,我们可以将杂边,改为图在网页中所在的背景的颜色,以做到在视觉上的一种无锯齿的感觉。

    60220

    Bitmap图片压缩,大图加载防止OOM

    Android Bitmap使用的三种颜色格式:ALPHA_8–每个像素占1个字节,存储透明度信息,没有颜色信息。...内存如果加载一张 500*500 的 png 高清图片.应该是占用多少的内存? png 图片应该有alpha通道,所以 Bitmap.Config 是 ARGB_8888 。...先看一些基础知识(后面有答案) Android官网-提供备用位图 这篇文章链接讲到: 要在像素密度不同的设备上提供良好的图形质量,您应该以相应的分辨率在应用中提供每个位图的多个版本(针对每个密度级别提供一个版本...要知道怎么压缩才能使 Bitmap 占用的内存变小,首先需要知道 Bitmap 的内存占用怎么计算。 计算图片的内存占用 这篇文章详细讲解。...例如,如果 1024x768 像素的图片最终会在 ImageView 显示 128x96 像素缩略图,则不值得将其加载到内存

    2.7K00

    CSS遮罩应用:带有不规则三角的气泡

    遮罩提供一种基于像素级别的,可以控制元素透明度的能力,类似于png24位或png32位alpha透明通道的效果。...实现原理: 类似于Photoshop的剪切蒙板,图像是由rgb三个通道以及在每个像素上定义的颜色组成的。但是在他们之上还有第四个通道alpha通道,通过亮度定义每个像素上的透明度。...代码部分: 说完原理我们来看一下代码: 首先我们在 body 写一个 p 标签,class 设置 mask      ...在 style 标签设置背景、宽高和遮罩:     .mask {         background: url(img/pic.jpg) no-repeat center;...);         float: left;     } 背景图就是遮罩内展示的图片,遮罩图片就是黑色图案的图片,这样就可以实现图一的效果了。

    1.4K00

    【例说Arm-2D界面设计】从不规则图标的显示说起

    已知一个白底的圆角矩形: 它其实保存在一个四方四正的像素数组里(红色边框是加的,用来让指示范围更加清晰): 当目标背景的颜色也是白色时,复制贴图,并无异样。...但假设背景是一个不同于白色的其它颜色,甚至是一个墙纸时: 使用直接贴图的方式,就会显露出它的弊端: 因为我们期望的效果是这样的: 简单说,就是我们希望圆角矩形的贴图中,原本背景白色不是真正的白色...一般来说,PNG格式是携带Alpha通道信息的常见格式。大量界面设计的素材也是以PNG来保存的。 那么Arm-2D是如何应对PNG类的图片素材的?...问题来了:PNG格式的文件在解码后往往以ARGB32形式保存,我们如何将其连同Alpha信息一起应用到一个RGB565的屏幕上?...运行结果如下: 怎么……运行结果正常,却并不能让我们满意——由于缺乏透明度信息,原本应该是完全透明的部分,由于对应像素值0x0000正好对应了RGB565下的黑色,因此呈现出一个黑色的背景色——

    88720

    photoshop学习笔记

    通道白色表示相应的色值达到最大,黑色表示相应的色值达到最小, 灰色表示相应的色值,越靠近白色,色值越大,越靠近黑色,色值越小 (四)调色和校色 校色:当图像偏色时,通过调色工具对其进行校正 调色:把图像从一个色调调整到另一个色调...图层蒙版黑白灰的意义: 黑色表示透明(遮罩) 白色表示不透明(显示) 灰色表示半透明(过渡状态) 蒙版使用注意事项: 1,当用画笔涂抹后,画面没有透明而是变成了黑白色,检查是否选中了蒙版,很有可能选中的是图层缩略图...Alpha通道ALPHA通道可以存储选区。...ALPHA通道白色的意义: 黑色:表示没有被选中的区域, 白色:表示被选中的区域, 灰色:表示羽化半透明 新建ALPHA通道的方法: 1,在通道面板中新建 2,复制红绿蓝单色通道 3,存储选区 通道抠图的步骤...: 1,打开通道面板,找到对比最强烈的单色通道,复制,得到ALPHA通道 2,选择色阶等调色工具,把要保留的调到白色,不保留的调黑色,羽化半透明的调成灰色。

    3.1K20
    领券