2010-07-30 89 views
0

我有一個圖像選擇器的「按下」狀態設置爲特定的可繪製。我想讓用戶有機會即時改變這一點。但是,我發現沒有辦法以編程方式獲取和修改選擇器。即時更改選擇器?

這是不支持的東西?

回答

1

選擇器像所有Android資源一樣,通過一些編譯時處理來優化XML以實現高效的運行時解析。您無法動態編輯您建議的資源。 AFAIK AFAIK實現你想要的唯一方法是手動在自定義圖像選擇器中實現可繪製選擇(沒有太多樂趣)或限制用戶選項,並有一個預先構建的選擇器集合,您可以在用戶的自由裁量權。

2

您可以使用StateListDrawable動態修改選擇器。

下面的代碼:

StateListDrawable state_up = new StateListDrawable(); 
     state_up.addState(new int[] {android.R.attr.state_pressed},getResources().getDrawable(R.drawable.btn_up_cyan)); 
     state_up.addState(new int[] {android.R.attr.state_focused},getResources().getDrawable(R.drawable.btn_up_cyan)); 
     b1.setBackgroundDrawable(state_up); 
+0

這對我的幫助lottt !!!!謝謝 – 2013-04-20 05:51:55