android颜色过滤,android – 将颜色过滤器添加到Drawable使用相...

我有一个屏幕,其中多个按钮使用相同的背景Drawable.我有可重用的代码,我在各种项目中使用它来添加一个OnTouch监听器,在触摸按钮时添加灰色滤色器.这通常可以正常工作,但在这种情况下,当按下任何按钮时,所有按钮都会着色.

Note: Each unique resource in your project can maintain only one

state, no matter how many different objects you may instantiate for

it. For example, if you instantiate two Drawable objects from the same

image resource, then change a property (such as the alpha) for one of

the Drawables, then it will also affect the other.

建议的解决方案是使用TweenAnimation,它似乎不适用于滤色器.

我还看到了Android: Cloning a drawable in order to make a StateListDrawable with filters,建议使用drawable.getConstantState().newDrawable().这似乎没有什么区别.我猜测只要使用相同的物理图像文件,所有Drawables都会受到使用相同资源对任何其他Drawable的更改的影响.

除了创建第二个背景图像以显示按下状态之外,还有什么解决方案?有一个简单的程序化解决方案,我可以添加到我的代码并在每个项目中使用,这将是一件好事.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值