【发布时间】:2014-12-21 04:32:36
【问题描述】:
我正在使用以下函数来启用和禁用可绘制...
public static void setDrawableState(Drawable d, boolean enabled)
{
if (d == null)
return;
d.mutate(); // so drawables don't share state anymore
if (enabled)
d.setAlpha(255);
else
d.setAlpha(100);
}
这适用于我尝试过的所有手机,现在我发现它似乎不适用于 android 4.4.2(甚至可能不是特定于版本的)。
是否有另一种(更好的)方法来设置可绘制对象的 alpha?还是我错过了什么?
【问题讨论】:
-
它是否适用于旧版本?
-
是的,完美...在
ImageButtons、MenuItems、ActionItems...只要我将它应用到可绘制对象上,它就可以工作...不知道是不是适用于所有设备,但适用于我的设备(HTC One Mini、4.4.3 和 4.3) -
我不认为您使用 mutate 正确。它返回可变实例。
-
你能解释一下,你将如何解决这个问题?实际上,我只是在谷歌上搜索了一下,甚至找到了一个解释我的技术的博客......curious-creature.org/2009/05/02/drawable-mutations
-
我不知道。我从来不需要这样做。我只是在视图上设置Alpha 或 setEnabled(false)