以编程方式将以下代码 xml 创建到层列表 android
create following code xml programmatically into layerlist android
我必须将此背景设置为许多不同颜色的视图。但如果我这样做,xml 将是大约 20 个文件,这是巨大的,所以我想将以下 xml layer-list
转换为编程方式进入完全独立的模块,甚至没有单个xml,以便它可以重复使用,请帮助我。
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
//i can create this drawable
<item>
<shape android:shape="rectangle">
<solid android:color="#ff2632"/>
</shape> </item>
//I don't know how to achieve this one, especially this "bottom property"
<item android:bottom="2dp">
<shape android:shape="rectangle">
<solid android:color="#d7ffa2"/>
</shape> </item>
</layer-list>
请找到下面的代码,
// This is the first item in your XML file
GradientDrawable layer1 = new GradientDrawable();
layer1.setShape(GradientDrawable.RECTANGLE);
layer1.setColor(Color.parseColor("#ff2632"));
// This is your second item in your XML file
GradientDrawable layer2 = new GradientDrawable();
layer2.setShape(GradientDrawable.RECTANGLE);
layer2.setColor(Color.parseColor("#d7ffa2"));
// This will give the bottom space which you are unable to do
InsetDrawable insetLayer2 = new InsetDrawable(layer2, 0, 0, 0, 2);
// This is the final drawable which is to be used
LayerDrawable layerDrawable = new LayerDrawable(new Drawable[]{layer1, insetLayer2});
参考这个,让我知道问题。
我必须将此背景设置为许多不同颜色的视图。但如果我这样做,xml 将是大约 20 个文件,这是巨大的,所以我想将以下 xml layer-list
转换为编程方式进入完全独立的模块,甚至没有单个xml,以便它可以重复使用,请帮助我。
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
//i can create this drawable
<item>
<shape android:shape="rectangle">
<solid android:color="#ff2632"/>
</shape> </item>
//I don't know how to achieve this one, especially this "bottom property"
<item android:bottom="2dp">
<shape android:shape="rectangle">
<solid android:color="#d7ffa2"/>
</shape> </item>
</layer-list>
请找到下面的代码,
// This is the first item in your XML file
GradientDrawable layer1 = new GradientDrawable();
layer1.setShape(GradientDrawable.RECTANGLE);
layer1.setColor(Color.parseColor("#ff2632"));
// This is your second item in your XML file
GradientDrawable layer2 = new GradientDrawable();
layer2.setShape(GradientDrawable.RECTANGLE);
layer2.setColor(Color.parseColor("#d7ffa2"));
// This will give the bottom space which you are unable to do
InsetDrawable insetLayer2 = new InsetDrawable(layer2, 0, 0, 0, 2);
// This is the final drawable which is to be used
LayerDrawable layerDrawable = new LayerDrawable(new Drawable[]{layer1, insetLayer2});
参考这个,让我知道问题。