【发布时间】:2014-05-02 04:42:07
【问题描述】:
我想在我的游戏中同时显示两辆不同颜色的汽车(比如说红色和蓝色),为此我使用相同的LayerDrawable(设置为@987654322 的图像资源@) 两辆车:
<?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,例如在顶部插入另一层车身和乘以它还是什么?
【问题讨论】:
-
@Hamid Shatu 而不是只编辑我的帖子.. 你能回答吗?甚至尝试?
-
@Vyger 是的,你是对的,我并没有假装他知道解决方案,但是“刚刚编辑了你的问题,抱歉无法回答”就足够了,但没关系。考虑到答案,我正在考虑“改变”颜色
Drawable,这样好吗? -
@Der Golem,这对我有用,虽然感觉有点笨拙。我可以让我的drawable改变颜色,但它的尺寸也在改变,我想是因为它是一个插图内的形状。因此,在这种情况下,每种颜色都有一个单独的图层列表。
标签: android colorfilter layerdrawable