gpt4 book ai didi

android - 如何在 Android 中以编程方式修改图层列表?

转载 作者:IT老高 更新时间:2023-10-28 23:19:08 25 4
gpt4 key购买 nike

我有一个图层列表设置为 Textview 的背景:-

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

<!-- Bottom 2dp Shadow -->
<item>
<shape android:shape="rectangle" >
<solid android:color="@android:color/black" />

<corners android:radius="15dp" />
</shape>
</item>

<!-- Blue Top color -->
<item
android:bottom="1.5px"
android:right="1px">
<shape android:shape="rectangle" >
<solid android:color="#2E93FA" />

<corners android:radius="15dp" />
</shape>
</item>

<solid android:color="#2E93FA" />

<corners
android:radius="15dp" />

-->我需要在这个层列表的 ListView 中显示不同的颜色。

我需要通过代码(动态)以编程方式修改第二项。有人可以帮忙吗?

最佳答案

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

关于android - 如何在 Android 中以编程方式修改图层列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20784454/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com