2014-06-17 47 views
-1

我有我的相對佈局按鈕:如何更改鏈接到drawable的按鈕的顏色?

<Button 
     android:id="@+id/gpsButton" 
     android:layout_width="50sp" 
     android:layout_height="50sp" 
     android:layout_alignParentRight="true" 
     android:layout_alignTop="@+id/tableLayout1" 
     android:background="@drawable/round_button" 
     android:gravity="center_vertical|center_horizontal" 
     android:text="GPS" 
     android:textColor="#ffffff" /> 

它鏈接到該燈罩:

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="oval"> 
    <solid android:color="#FF0000"/> 
    <stroke android:width="2sp" android:color="#fff" /> 
</shape> 

我的問題是如何改變從按鈕的顏色在我的活動?

我已經試過了,但應用程序崩潰-.- 這裏是我的代碼片段:

RelativeLayout relLayout = (RelativeLayout) findViewById(R.id.reli); 
         GradientDrawable bgShape = (GradientDrawable) relLayout.getBackground(); 
         bgShape.setColor(Color.parseColor("#FFFF00")); 

什麼我錯了嗎?我不明白如何用這個觀點來做到這一點。

預先感謝您:)

+0

** 1 ** - 這個'GradientDrawable bgShape'對我來說沒有意義。這個'ShapeDrawable bgShape'會更有意思。 ** 2 ** - 您以紅色開始('')。如果您開始使用白色(''),則可以很容易地更改該drawable的顏色。我在這裏展示它:http://stackoverflow.com/a/24166204/2649012 –

+0

發佈你的stacktrace! – goonerDroid

+0

@DerGolem我只能從紅色開始抱歉... –

回答

0

您可以輕鬆地通過編程將彩色濾光片改變你Button的背景顏色。爲此,請在XML文件中設置一個白色背景。然後,使紅色按鈕,你可以這樣做:

gpsButton.getBackground().setColorFilter(Color.RED, Mode.MULTIPLY); 

redwhite將成倍增加,這將導致作爲red。當然,你可以用你想要的顏色替換Color.RED

+0

謝謝你解決了我的問題:) –