2014-02-14 31 views
1

對於Android中的各種View s,我使用了一種簡單的背景顏色。但爲了使它更有趣,我想爲背景添加紋理或噪音。爲Android視圖組合背景顏色和紋理

查找background patterns很容易。並使其成爲一個平鋪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()方法並以某種方式添加顏色? This answer談論BitmapShader,但我不知道如何使用它。任何幫助?

回答

1

使用Drawable.setColorFilter()方法。在大多數情況下,您將使用PorterDuffColorFilter或LighingColorFilter

+0

謝謝!看起來'android.graphics.PorterDuff.Mode.MULTIPLY'通常效果最好。 – caw