美文网首页
Android设置透明度引发bug

Android设置透明度引发bug

作者: 王怀智 | 来源:发表于2019-08-12 13:55 被阅读0次

再日常开发中,经常会遇到scrollview滑动,改变状态栏颜色的需求。一般做法都是监听滑动距离,动态改变view的透明度。这是一般常用操作。

那么问题来了,两个activity都是这种需求,而且所使用的透明背景颜色一样。再A页面设置了背景颜色之后,进入B页面,没有滑动,但是B页面已经改变了背景颜色值.....(蜜汁背景)

问题解决

  • 修改之前:
    tv_title.getBackground().setAlpha(100);
  • 修改之后:
    tv_title.getBackground().mutate().setAlpha(100);

简述

可以看到,这里的修改之后多了一个方法mutate();当view.getBackground()获得的是一个ColorDrawable,然后给这个ColorDrawable设置Alpha值的话,会影响所有设置backgound为这个颜色的背景色的alpha(共用了这个alpha)。

mutate解释:

引用官方话语:

Make this drawable mutate,This operation cannot be reversed.A mutable darwable is guaranteed to not share its state with any other drawable.
所以设置背景透明色的时候,加上 mutate方法

相关文章

  • Android设置透明度引发bug

    再日常开发中,经常会遇到scrollview滑动,改变状态栏颜色的需求。一般做法都是监听滑动距离,动态改变view...

  • android透明度设置

    一、前言: Android 的透明度在alpha 为0~1.在xml中用16进制表示. 例如:全透明 #00000...

  • Android InputMethodmanager 引发的内存

    InputMethodmanager 引发的内存泄露是 Android 输入法的系统 bug,在15 <= API...

  • Android 透明度设置详解

    本节前言 今天给大家介绍的是关于Android各式各样的透明度,有需要的希望能够帮到你们,我们在学习本节课之前,先...

  • css实现背景透明文字不透明

    设置元素的透明度: -moz-opacity:0.8; /*在Firefox中设置元素透明度 filter: al...

  • 基础动画2017.8.4

    透明度动画 android:duration="1000" android:fromAlpha="0.0" and...

  • iOS-常用小技巧03

    1.设置背景半透明: 在开发过程中,很多需要设置控件的透明度,下面提供几种设置控件透明度的方法

  • Android 背景透明度设置总结

    概述 在需求上遇到背景设置透明度还是比较常见的,设置透明度有几种方式,但是不同的场景应用下,不同的方式可能会出现一...

  • android开发 透明度设置问题

    有的时候需要设置各个颜色的透明度颜色值, 而有时UI不一定会给你确定的色值,后来我网上找了个一个哥们分享的内容 感...

  • 整理

    1.canvas画图,让文字居中显示 2.canvas画一个带透明度的矩形 3.设置透明度后其他的不设置透明度

网友评论

      本文标题:Android设置透明度引发bug

      本文链接:https://www.haomeiwen.com/subject/pegyjctx.html