我想以编程方式创建一个 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. 具有较大宽度的背景可绘制集
所以你可以看到我给出的下阴影边框是通过图层列表的第二项。
但是当我尝试像这样以编程方式做同样的事情时,
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);
视图看起来像这样。正如你所看到的,我想在底部的阴影在中心。
请帮我解决这个问题。提前致谢。