gpt4 book ai didi

Android ImageButton setColorFilter 不工作

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:17:07 26 4
gpt4 key购买 nike

我一直在寻找回答这个问题的帖子,但没有一个对我有用,所以我认为我对它应该如何工作存在根本性的误解。我有一个 ImageButton,它应用了一个 png 文件。除了白色箭头外,png 大部分是透明的。我想用 setColorFilter 将箭头染成红色:

imageButton.setColorFilter(Color.argb(255, 225, 0, 0));

但这没有影响。我已经尝试过具有各种 Porter-Duff 模式的 setColorFilter 版本,但这些都不起作用。任何关于问题可能是什么或我可能遗漏了什么的想法都将不胜感激。

最佳答案

您必须从按钮获取 Drawable,因为您尝试使用(在您的设置中)的 setColorFilter 适用于它们。

ImageButton btn = (ImageButton) myLayout.findViewByID(R.id.my_button);

int mycolor = getResources().getColor(R.color.best_color);

btn.getDrawable().setColorFilter(mycolor, PorterDuff.Mode.SRC_ATOP);

只要你对一个Drawable对象有正确的引用,

例如textView.getCompoundDrawables()[2].setColorFilter(...);

在其 xml 中:

<TextView
...
android:drawableLeft="..."
...
/>

您可以根据自己的喜好使用 myDrawableObject.setColorFilter()。

编辑:

对于ImageButton,imageButton.getDrawable()的drawable对应于android:src="...",而imageButton.getBackground() 对应于 android:background="..." 属性。确保在正确的可绘制对象上调用 setColorFilter。

关于Android ImageButton setColorFilter 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28734809/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com