2013-03-13 40 views
3

我需要以編程方式執行此操作的原因是文本顏色已下載並且未在xml中預先定義。我讀這 Replace selector images programmatically以編程方式向StateListDrawable添加顏色「#e3bb87」

我只需要從

StateListDrawable states = new StateListDrawable(); 
states.addState(new int[] {android.R.attr.state_pressed}, 
    getResources().getDrawable(R.drawable.pressed)); 

知道如何變成

states.addState(new int[] {android.R.attr.state_pressed},**theMethodImLookingFor**("#e3bb87")); 

忘記getResources().getColor(R.color.anycolor),顏色不是XML定義

+0

你可以嘗試使用text.setTextColor(0xff00ff00) ; – 2013-03-13 10:46:43

+0

這是一個有趣的觀點。我建議從標題中刪除顯式的「#e3bb87」,這樣人們可以很容易地找到它的任何顏色。 – John 2015-09-26 09:11:30

回答

5

您可以使用此:

states.addState(new int[] {android.R.attr.state_pressed}, 
    new ColorDrawable(Color.parseColor("#e3bb87"))); 
0

的方法將be

new ColorDrawable(Color.parseColor("#e3bb87")) 
1

我認爲你正在尋找ColorDrawable

你可以做這樣的事情:

StateListDrawable states = new StateListDrawable(); 
int color = 0xff00ff00; 
states.addState(new int[] {android.R.attr.state_pressed}, 
    new ColorDrawable(color)); 
+0

謝謝,我只能接受一個答案。 「只能有一個」像漢蘭達 – 2013-03-13 10:56:41

相關問題