2012-11-18 45 views
0

我有一個ImageButton,其中源圖像從網絡動態加載。我的目標是根據按鈕的狀態(即state_pressed,state_focused ...)在圖像上設置不同的顏色過濾器。問題是我不能使用Selector,因爲我的圖像是動態加載的,不是可繪製的資源。 有沒有人可以給我一個線索,我如何識別使用代碼的狀態並模仿選擇器的工作?模仿Android的ImageButton狀態代碼選擇器

回答

1

可以編程設置狀態由kcoppock在this SO post

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

imageButton.setImageDrawable(states); 
+1

而當你有動態圖像概括,而不是如果'r.getDrawable(...)'使用'Drawable.createFromPath(pathname)按' 。 – Ridcully

+0

@antwe:這似乎是一個好開始,但我該如何設置彩色濾光片?在同一個drawable上調用'setColorFilter'似乎沒有效果。 –

+0

@Ridcully:我忘了謝謝你的評論,它完成了答案。所以謝謝 :) –