我想以编程方式创建一个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。宽度较大的是具有背景可绘制集
因此,您可以看到我给出的下阴影边框是通过图层列表的第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);
视图看起来像这样。你可以看到我想要在底部的阴影位于中心。
请帮我解决这个问题。 提前谢谢。