0
我有一個ImageView有一個src設置爲圖像。現在,當我點擊圖像時,我希望圖像變灰,這意味着它被按下。選擇顏色imageview android
我不想爲選定的狀態分開圖像,因爲它聽起來像是一種矯枉過正。我有很多按鈕,併爲它們製作重複的圖像,只是灰色的覆蓋圖聽起來不符合直覺。
有沒有一種方法可以在按下按鈕時在圖像按鈕上顯示灰色覆蓋圖。 ?
我有一個ImageView有一個src設置爲圖像。現在,當我點擊圖像時,我希望圖像變灰,這意味着它被按下。選擇顏色imageview android
我不想爲選定的狀態分開圖像,因爲它聽起來像是一種矯枉過正。我有很多按鈕,併爲它們製作重複的圖像,只是灰色的覆蓋圖聽起來不符合直覺。
有沒有一種方法可以在按下按鈕時在圖像按鈕上顯示灰色覆蓋圖。 ?
使用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);
}
hbansal。感謝您的幫助 。 –
使用StateListDrawable的組合,張貼代碼 – himanshurb