我希望在我的游戏中同时展示两辆不同颜色的汽车(比如红色和蓝色),为此我使用相同的LayerDrawable
(将其设置为ImageView
的图像资源)来呈现这两辆汽车:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/car_backstuff"/>
<item android:drawable="@drawable/car_body"/>
<item android:drawable="@drawable/car_frontstuff"/>
</layer-list>
问题在于当我想给一辆车上色时,我会这样做:
_layerDrawable.getDrawable(1).setColorFilter(Color.RED, PorterDuff.Mode.MULTIPLY);_
但是当我对第二辆车(即使用
Color.BLUE
)这样做时,两辆车都变成蓝色了!我知道这是因为它引用了相同的资源(在这种情况下是R.drawable.car_body),但我想知道是否有一种方法可以为每辆车应用不同的
ColorFilter
,比如在汽车车身顶部插入另一层并将其相乘或其他什么操作?
Drawable
,这样好吗? - Mino