Android 在片段中设置滤色器 activity
Android set color filter in fragment activity
所以我试图设置片段 activity 内的 ImageView
的 colorFilter
。我可以点击按钮,它按预期工作,除非我尝试设置 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);
这是因为您的 getBackground 给出的是 null。
你有一个图像视图。可能是您在 xml 中设置了它的 "src" 而不是 "background"。
如果您想继续使用相同的方法,请在 xml.
中设置背景
谢谢
所以我试图设置片段 activity 内的 ImageView
的 colorFilter
。我可以点击按钮,它按预期工作,除非我尝试设置 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);
这是因为您的 getBackground 给出的是 null。 你有一个图像视图。可能是您在 xml 中设置了它的 "src" 而不是 "background"。 如果您想继续使用相同的方法,请在 xml.
中设置背景谢谢