2014-01-09 2 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. Спасибо за помощь . –

Смежные вопросы