2013-07-15 41 views
2

嗨,我正在开发一个Android应用程序,其中我绘制资源来设置按钮的背景。我想以编程方式更改该绘图的开始和结束颜色,即按钮点击侦听器中的活动类。我的drawable看起来像:在Android活动类中动态更改可绘制的开始颜色和结束颜色

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 
    <gradient android:startColor="#be584c" 
    android:endColor="#be584c" 
    android:angle="270" /> 
    <corners android:radius="2dp" /> 
    <stroke android:width="1px"/> 
</shape> 

而我将它设置为xml文件中按钮的背景。 android:background="@drawable/download_button"

我想在活动类中更改此drawable的起始颜色和结束颜色如何执行此操作。有什么办法可以做到这一点。需要帮忙。谢谢。

回答

7

是的,这是可能的。你应该使用GradientDrawable来做到这一点。

int colors[] = { 0xff255779, 0xffa6c0cd }; 

GradientDrawable gradientDrawable = new GradientDrawable(
     GradientDrawable.Orientation.TOP_BOTTOM, colors); 

view.setBackgroundDrawable(gradientDrawable); 

根据您的要求更改颜色代码。虽然我使用Color.parseColor("color code"),但它不工作。

有一些选项定位如下。

GradientDrawable.Orientation.BOTTOM_TOP; 
GradientDrawable.Orientation.LEFT_RIGHT; 
GradientDrawable.Orientation.RIGHT_LEFT; 
+1

谢谢chintan ... – nilkash

-1

新GradientDrawable(GradientDrawable.Orientation.TL_BR,新INT [] {0xFF141a24,0xFF293f49,0xFF72554c})