LayerList无法动态绘制

时间:2013-10-18 07:14:34

标签: android

我想以编程方式创建一个Drawable并将其设置为TextView的背景,如下所示

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
<shape android:shape="rectangle" >
    <solid android:color="@color/listitem_background_color" />
</shape>
</item>
<item android:top="44dp">
<shape android:shape="rectangle">
    <gradient android:angle="270" android:endColor="#7e000000" android:startColor="#7e5b5b5b" />
</shape>
</item>
</layer-list>

图像显示两个textview,1。宽度较大的是具有背景可绘制集

LayerList Drawable Set

因此,您可以看到我给出的下阴影边框是通过图层列表的第2项。

但是当我尝试以这样的程序方式做同样的事情时,

    Drawable[] layers = new Drawable[2];
    ShapeDrawable backgroundRect = new ShapeDrawable(new RectShape());
    backgroundRect.getPaint().setColor(Color.parseColor(familyColor));


    int startColor = Color.parseColor("#7e5b5b5b");
    int endColor = Color.parseColor("#7e000000");
    GradientDrawable lowerShadow = new GradientDrawable(Orientation.TOP_BOTTOM, new int[]{startColor, endColor});
    lowerShadow.setShape(GradientDrawable.RECTANGLE);

    layers[0] = backgroundRect;
    layers[1] = lowerShadow;
    LayerDrawable layerDB = new LayerDrawable(layers);
    layerDB.setLayerInset(0, 0, 0, 0, 0);
    layerDB.setLayerInset(1, 0, 20, 0, 0);

    familyHeaderView.setBackgroundDrawable(layerDB);

视图看起来像这样。你可以看到我想要在底部的阴影位于中心。

problem with the shadow

请帮我解决这个问题。 提前谢谢。

0 个答案:

没有答案