【Android】设置View 透明度

设置View 透明度两个方法:view.setAlpha(float
alpha)与view.getBackground().setAlpha(int alpha)

1、view.setAlpha(float alpha)

  • 是对整个view的透明度(包括它的子view)进行设置,setAlpha(0)时view和其子view就会消失。
  • 参数范围是0~1

2、view.getBackground().setAlpha(int alpha)

  • 是对背景透明度进行设置,setAlpha(0)是背景全透明,其子view并不会收到影响。
  • 传入的是0~255的整型数字
注意事项:
1、mutate问题
在使用view.getBackground().setAlpha(int alpha)
给透明值是会使得同色直的其他界面受到影响。
解决方案如下:
view.getBackground().mutate().setAlpha(int alpha) 
只需要在getBackground的后面加上.mutate()即可解决。

至于为什么加上mutate()就可以解决的原因在于:默认情况下,所有的从同一资源(R.drawable.xxxx等等)加载的实例都是一个共用的状态,如果改变一个实例状态,其余的实例都会收到通知,改变其状态。而mutate()方法的作用就在于获取的drawable实例变为单独的,让这个drawable可变,这个操作是不可逆的。一个可变Drawable可以保证不与其它的Drawable分享一个状态。当你需要修改资源中的Drawable的属性时这个方法是非常有用的,因为默认情况下加载相同资源的所有Drawable实例拥有同一个状态,如果你在一个地方改变了状态,其它的实例也会跟着改变。

2、view.getBackground()为空问题

在页面先设置一下background,再去获取即可。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值