2013-07-15 92 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})