2016-07-04 1 views
0

Я пытаюсь иметь ImageButton что изначально имеет серый эффект на него & превращается в его оригинальный цвет при выборе. Я пытаюсь достичь чего-то вроде this. Я знаю, что это можно сделать в CSS, но было интересно, существует ли какой-либо эквивалентный ему атрибут/функция Android.Есть ли способ, которым я могу очернить ImageButton в Android без сохранения отдельной серой копии исходного изображения?

Я прочитал сообщение here, что, кажется, предполагает, что для этого я должен поддерживать другую серое изображение того же изображения. Но он будет потреблять много памяти, чтобы поддерживать 2 копии одного и того же изображения, если у меня есть, скажем, 100+ ImageButtons.

В отличие от обычной кнопки, кнопки Image или Button с изображением фон не является серым, когда отключен. Вы действительно должны использовать другое изображение или обработать его таким образом, чтобы оно выглядело серым.

Итак, на самом деле нет способа достичь в Android того, что можно было бы достичь, используя оттенки серого в CSS?

Спасибо за ваше время!

ответ

4

Если вы используете изображения .png, вы можете использовать атрибут цветового фильтра ImageView.

public void setDisabled(ImageView imageView) { 
    final ColorMatrix grayscaleMatrix = new ColorMatrix(); 
    grayscaleMatrix.setSaturation(0); 

    final ColorMatrixColorFilter filter = new ColorMatrixColorFilter(grayscaleMatrix); 
    imageView.setColorFilter(filter); 
} 
+0

Хорошо, что делает то, что я хочу, но задавался вопросом, может ли то же самое применяться к «ImageButton», и если да, то как. Я хочу, чтобы кнопка нажала кнопку серого цвета. – Auro

+0

'ImageButton' расширяет' ImageView', поэтому тот же код должен быть применим. –

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