1

我想以编程方式创建一个 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>

显示两个文本视图的图像,1. 具有较大宽度的背景可绘制集

LayerList 可绘制集

所以你可以看到我给出的下阴影边框是通过图层列表的第二项。

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

    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);

视图看起来像这样。正如你所看到的,我想在底部的阴影在中心。

阴影的问题

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

4

0 回答 0