对于Android中的各种View
,到目前为止,我使用了简单的背景色。但为了让它更有趣,我想在背景中添加纹理或噪点。
查找背景图案很容易。并将它们制作成平铺BitmapDrawable
以用作背景:
<?xml version="1.0" encoding="utf-8"?>
<bitmap
xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/pattern"
android:tileMode="repeat" />
但是我现在如何添加颜色呢?你知道,我想将纹理与颜色组合在一起,这样我就只有纹理的图案并"忽略"或"删除"颜色,而是使用代码中的任意颜色为图案着色。这怎么可能?
我是否必须正常使用模式,但随后覆盖视图的onDraw()
方法并以某种方式添加颜色?这个答案谈到了一个BitmapShader
,但我不知道如何使用它。有什么帮助吗?
Drawable.setColorFilter() 方法。 在大多数情况下,您将使用 PorterDuffColorFilter 或 LighingColorFilter