我有一个图层列表设置为Textview的背景: -
- >我需要在列表视图中为此图层列表显示不同的颜色.
我需要通过代码(动态)以编程方式修改第二项.有人可以帮忙吗?
看一下,LayerDrawable
因为它是从您的XML创建的并在运行时使用.
例:
my_drawable.xml:
<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/gradientDrawble"> <shape android:shape="rectangle" > <gradient android:endColor="#897343" android:startColor="#345456" /> <corners android:radius="15dp" /> </shape> </item>
在运行时修改:
LayerDrawable layerDrawable = (LayerDrawable) getResources() .getDrawable(R.drawable.my_drawable); GradientDrawable gradientDrawable = (GradientDrawable) layerDrawable .findDrawableByLayerId(R.id.gradientDrawble); gradientDrawable.setCornerRadius(50);