Android установил цветной фильтр в активности фрагментов - PullRequest
0 голосов
/ 05 октября 2018

Итак, я пытаюсь установить colorFilter для ImageView, который находится внутри действия фрагмента.Я могу нажать на кнопку, и она работает как положено, за исключением случаев, когда я пытаюсь установить colorFilter, он вылетает и говорит:

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.graphics.drawable.Drawable.setColorFilter(int, android.graphics.PorterDuff$Mode)' on a null object reference

Как это может быть нулевым, если я уже нажимаю на него, и он работает?Как мне это исправить?Вот мой onCreateView:

myButton = (ImageView) view.findViewById(R.id.mybutton);
myButton.setOnClickListener(this);

// testing
myButton.getBackground().setColorFilter(Color.GRAY, PorterDuff.Mode.MULTIPLY);

** ОТВЕТ ** Мое решение, как указано, я использовал app:srcCompat="@drawable, чтобы установить свой imageView, а не фон.Так что я просто удалил .getBackground.Вот мое решение:

myButton.setColorFilter(ContextCompat.getColor(context, R.color.Gray), android.graphics.PorterDuff.Mode.MULTIPLY);

1 Ответ

0 голосов
/ 05 октября 2018

Это потому, что ваш getBackground дает ноль.У вас есть изображение.Может быть, вы установите его "src", а не "background" в XML.Если вы хотите продолжить с тем же, то установите фон в XML.

Спасибо

...