Android按钮在形状上使用相同的Drawable,但使用不同的颜色

时间:2015-03-05 11:10:59

标签: android button colors drawable reusability

在我的应用程序中,我使用了很多按钮。并且所有按钮必须具有相同的形状但颜色不同。我为每个具有相同功能但不同的固体android:color的按钮编写了drawable。这样做更多 在我的应用程序中超过20个可绘制的xml。 如何为所有按钮使用相同的drawable,但应该能够 设置不同的背景颜色。 我尝试如下,但没有奏效 1.在attrs.xml中      
     
     

  1. 在drawable文件夹中创建了rectanglehape.xml,用于矩形形状


     

  2. 在styles.xml中         @绘制/ buttonshape
           @色/ mycolor

  3. 在Colors.xml中 #000000
  4. 最后在我的活动xml中,对于按钮我将主题设置为

    <Button android:id="@+id/btnTest" 
    android:theme="@style/TestTheme"   android:text="Test" /> 
    

    这对我不起作用。你们中的任何人都可以帮我解决这个问题吗?我是android开发的新手。我无法弄清楚我哪里出错了。任何帮助将非常感激。 谢谢, 罗杰

1 个答案:

答案 0 :(得分:1)

使用它:GradientDrawable bgShape =(GradientDrawable)view.getBackground()。getCurrent(); bgShape.setColor(Color.BLACK);

如果你想设置任何视图的不同颜色,只需使用此代码即可。

.getCurrent给出选定的可绘制图层列表

使用它不会抛出java.lang.ClassCastException:android.graphics.drawable.GradientDrawable无法强制转换为android.graphics.drawable.ShapeDrawable异常。

它对我来说非常适合。