【问题标题】:Android set color filter in fragment activityAndroid在片段活动中设置颜色过滤器
【发布时间】:2018-10-05 14:11:37
【问题描述】:

所以我试图设置片段活动内部的ImageViewcolorFilter。我可以单击该按钮,它按预期工作,除非我尝试设置 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);

【问题讨论】:

标签: android android-fragmentactivity android-button


【解决方案1】:

这是因为您的 getBackground 给出了 null。 你有一个图像视图。可能是您在 xml 中设置了它的“src”而不是“背景”。 如果你想继续,那么在 xml 中设置背景。

谢谢

【讨论】:

  • 你是对的,我使用的是src 而不是背景,我只需要删除 .getBackground 并使用 setColorFilter。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-09
  • 1970-01-01
  • 2018-05-18
  • 2018-09-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多