xml只能实现六种代码可以实现十六种
PorterDuff.Mode.CLEAR
所绘制不会提交到画布上。PorterDuff.Mode.SRC
显示上层绘制图片PorterDuff.Mode.DST
显示下层绘制图片PorterDuff.Mode.SRC_OVER
正常绘制显示,上下层绘制叠盖。PorterDuff.Mode.DST_OVER
上下层都显示。下层居上显示。PorterDuff.Mode.SRC_IN
取两层绘制交集。显示上层。PorterDuff.Mode.DST_IN
取两层绘制交集。显示下层。PorterDuff.Mode.SRC_OUT
取上层绘制非交集部分。PorterDuff.Mode.DST_OUT
取下层绘制非交集部分。PorterDuff.Mode.SRC_ATOP
取下层非交集部分与上层交集部分PorterDuff.Mode.DST_ATOP
取上层非交集部分与下层交集部分PorterDuff.Mode.XOR
取两层绘制非交集。两层绘制非交集。PorterDuff.Mode.DARKEN
上下层都显示。变暗PorterDuff.Mode.LIGHTEN
上下层都显示。变亮PorterDuff.Mode.MULTIPLY
取两层绘制交集PorterDuff.Mode.SCREEN
上下层都显示。
通过tint色处理的图片会原图显示出不一样的颜色,我们可以通过这种方式利用一张图片做出图片选择器的效果,让控件在按压状态下显示另外一种颜色:
通过给图片设置tint色生成另外一种图片
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/ring"
android:tintMode="multiply"
android:tint="#5677fc" />
利用新的图片生成图片选择器
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/tint_bitmap" android:state_pressed="true"/>
<item android:drawable="@drawable/ring" />
</selector>