在运行时设置三角形的颜色

时间:2014-06-30 14:05:55

标签: android shapedrawable android-shape

我正在使用xml绘制一个三角形,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:id="@+id/rightArrow">
        <rotate
            android:fromDegrees="45"
            android:toDegrees="45"
            android:pivotX="-40%"
            android:pivotY="87%" >
            <shape
                android:shape="rectangle"  >
                <stroke android:color="@android:color/transparent" android:width="10dp"/>
                <solid
                    android:color="#000000"  />
            </shape>
        </rotate>
    </item>
</layer-list>  

现在我需要在运行时设置这个三角形的颜色,所以我做了

        LayerDrawable layers = (LayerDrawable)  this.getActivity().getResources().getDrawable(R.drwable.customtriangle);  
       GradientDrawable shape = (GradientDrawable)(ldrawable.findDrawableByLayerId(R.id.layerItemRightArrow));

shape.setcolor(mycolor);

但是我面对的是rotaterwable,无法在

进行渐变式渲染
GradientDrawable shape = (GradientDrawable)(ldrawable.findDrawableByLayerId(R.id.layerItemRightArrow));

我无法弄清楚如何处理...
任何帮助赞赏。 Thanx提前

1 个答案:

答案 0 :(得分:4)

致电getDrawable()上的RotateDrawable以获取正在轮换的Drawable