gpt4 book ai didi

Android以编程方式更改颜色描边(边框)

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:36:56 31 4
gpt4 key购买 nike

我尝试通过“GradientDrawable”改变颜色“描边”,但不起作用。

另外,我不知道如何获取 id stroke,并且只更改笔划(我看到 google,所有示例都失败了)

我的 XML 项目

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@+id/selectable_kachel_shape" >
<shape
android:innerRadius="0dp"
android:shape="ring"
android:thicknessRatio="2"
android:useLevel="false" >
<stroke android:width="11dp" android:color="#ff00ffff"/>
<gradient
android:centerColor="#FFFFFF"
android:endColor="#FFFFFF"
android:startColor="#FFFFFF"
android:type="sweep" />
</shape>
</item>
</layer-list>

GradientDrawable gd = (GradientDrawable) circleProgress.getBackground();

gd = (GradientDrawable) circleProgress.getBackground();
gd.setColor(Color.RED);

android.graphics.drawable.LayerDrawable cannot be cast to android.graphics.drawable.GradientDrawable

这里可以,但是......没有得到我的元素

    GradientDrawable gd = new GradientDrawable();
gd.setColor(Color.RED);
gd.setCornerRadius(10);
gd.setStroke(2, Color.WHITE);


circleProgress.setBackgroundDrawable(gd);

更新 这里有效,但不改变我的行程(我尝试使用 ID 但不工作)仅使用 ID 项目。

GradientDrawable shape = (GradientDrawable) (layers.findDrawableByLayerId(R.id.selectable_kachel_shape));
shape.setColor(this.getResources().getColor(android.R.color.background_dark));
circleProgress.setBackgroundDrawable(shape);

最佳答案

除此之外,您可以使用任何布局并将您的 xml 应用为选择器,并且对于该布局,您可以通过 GradientDrawable 应用动态背景。

例如, 主.xml

           <RelativeLayout 
android:orientation="vertical"
android:id="@+id/mainLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/shapes"/>

然后是你的xml,shapes.xml

            <layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@+id/selectable_kachel_shape" >
<shape
android:innerRadius="0dp"
android:shape="ring"
android:thicknessRatio="2"
android:useLevel="false" >
<stroke android:width="11dp" android:color="#ff00ffff"/>
<gradient
android:centerColor="#FFFFFF"
android:endColor="#FFFFFF"
android:startColor="#FFFFFF"
android:type="sweep" />
</shape>
</item>
</layer-list>

并在您的 Activity 中编写以下代码。

    RelativeLayout  mainLayout= (RelativeLayout ) findViewById(R.id.mainLayout);
GradientDrawable gd = new GradientDrawable();
gd.setColor(Color.RED);
gd.setCornerRadius(10);
gd.setStroke(2, Color.WHITE);
mainLayout.setBackgroundDrawable(gd);

有关更多 GradientDrawable,请使用链接 http://developer.android.com/reference/android/graphics/drawable/GradientDrawable.html

希望对您有所帮助。

关于Android以编程方式更改颜色描边(边框),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29512013/

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