Android透明PNG文件添加底色

Android透明PNG文件添加底色

  • 1、走过的弯路
  • 2、最笨的方法-方法1
  • 3、使用API设置底色-方法2
  • 4、继续优化-方法3

       作为一个APK开发者,界面的优美是必须要考虑的事情,见到一个好的APK,如果想要获得APK上的图标,可以采用一个很方便的方式:直接解压APK文件到本地,直接找res文件夹,就可以找到对应的图片。
       其中,png图片很常见,而透明的png图片更常见。为什么呢?因为我们可以通过修改底色,来获得不同的视觉效果,达到一张png图显示多种状态。很实用,比如,一个ImageView控件放入一个透明的png响铃,点击后,响铃变色,提示ImageView是否点击的状态。下面我将一步步实现上述需求。
       先上图,如果有一样的需求,继续往下看(点击前后图1,图2对比):

图1图2

1、走过的弯路

       对于图片我们都知道怎么设置背景色,android:background="@color/black",就是在设置底色为黑色,但是效果并没有达到预期,没有实现响铃颜色的变化,只是做了一个遮挡,显示一个响铃轮廓,见图1红色框。
       那个怎么设置一个响铃的色彩呢?首先想到的是编写一个.xml文件,因为之前用过此类方法解决控件圆角的问题。代码如下。

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"><item><shape android:shape="rectangle"><solid android:color="@color/gray"/></shape></item><item><bitmap android:src="@drawable/ic_notify"/></item>
</layer-list>

       后来发现不行,见图1黄色框。通过查询资料和实测,发现一个item,就是一个画布,每张画布可以放置一个图片,但是底层的item会覆盖顶层的item,且不可设置透明度,所以此种方式无法实现上述我们提出的需求。
       后来引入android:tint="@color/gray"属性解决了这个问题,效果见图1青色框。
       tint属性是对图片进行着色,以适应不同需求。还有个属性android:tintMode="src_in"来配合


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部