Android 按钮使用相同的 Drawable 形状但使用不同的颜色
Posted
技术标签:
【中文标题】Android 按钮使用相同的 Drawable 形状但使用不同的颜色【英文标题】:Android buttons use same Drawable for shape but use different colors 【发布时间】:2015-05-06 17:47:15 【问题描述】:在我的应用程序中,我使用了很多按钮。并且所有按钮的形状必须相同但颜色不同。我为每个具有相同功能但不同的实体 android:color 的按钮编写了可绘制对象。这让更多 我的应用程序中有超过 20 个可绘制的 xml。 如何对所有按钮使用相同的可绘制对象,但应该能够 设置不同的背景颜色。 我尝试如下,但没有奏效。 1. 在 attrs.xml
在drawable文件夹中为矩形创建buttonshape.xml
在styles.xml 中 @drawable/按钮形状 @color/mycolor
在 Colors.xml 中 #000000最后在我的活动 xml 中,对于按钮,我将主题设置为
<Button android:id="@+id/btnTest"
android:theme="@style/TestTheme" android:text="Test" />
这对我不起作用。你们中的任何人都可以帮我解决这个问题吗?我是android开发的新手。我无法弄清楚我哪里出错了。任何帮助将非常感激。 谢谢, 罗杰
【问题讨论】:
在运行时获取此可绘制背景并更改背景颜色。 【参考方案1】:使用这个: GradientDrawable bgShape = (GradientDrawable)view.getBackground().getCurrent(); bgShape.setColor(Color.BLACK);
如果您想为任何视图设置不同的颜色,只需使用此代码。
.getCurrent 给出选定的可绘制图层列表
使用它不会抛出 java.lang.ClassCastException: android.graphics.drawable.GradientDrawable cannot be cast to android.graphics.drawable.ShapeDrawable 异常。
它非常适合我。
【讨论】:
以上是关于Android 按钮使用相同的 Drawable 形状但使用不同的颜色的主要内容,如果未能解决你的问题,请参考以下文章
将颜色过滤器添加到 Drawable 会更改使用相同 Drawable 的所有 Button
在android中将drawable设置为浮动操作按钮ImageView
我可以使用相同的“radioButton_states”drawable并创建一个每个按钮具有不同背景颜色的radioGroup吗?