2014-01-09 73 views
0

我有一個ImageView有一個src設置爲圖像。現在,當我點擊圖像時,我希望圖像變灰,這意味着它被按下。選擇顏色imageview android

我不想爲選定的狀態分開圖像,因爲它聽起來像是一種矯枉過正。我有很多按鈕,併爲它們製作重複的圖像,只是灰色的覆蓋圖聽起來不符合直覺。

有沒有一種方法可以在按下按鈕時在圖像按鈕上顯示灰色覆蓋圖。 ?

+0

使用StateListDrawable的組合,張貼代碼 – himanshurb

回答

0

使用StateListDrawable和LayerDrawable

private void setSelector(View view) { 
     StateListDrawable drawable; 
     LayerDrawable layerDrawable; 
     Drawable background = view.getBackground(); 
     ShapeDrawable selector = new ShapeDrawable(new RectShape()); 
     selector.setIntrinsicHeight(v.getHeight()); 
     selector.setIntrinsicWidth(v.getWidth()); 
     selector.getPaint().setColor(<gray color>); 

     drawable = new StateListDrawable(); 
     Drawable[] drawableArray = new Drawable[2]; 
     drawableArray[0] = background; 
     drawableArray[1] = selector; 

     layerDrawable = new LayerDrawable(drawableArray); 

     int[] state1 = {}; 
     int[] state2 = {-android.R.attr.state_pressed, -android.R.attr.state_focused}; 
     drawable.addState(state2, background); 
     drawable.addState(state1, layerDrawable); 

     v.setBackgroundDrawable(drawable);  
    } 
+0

hbansal。感謝您的幫助 。 –