美文网首页Android之界面
Android 滚动界面让标题栏渐变的问题

Android 滚动界面让标题栏渐变的问题

作者: rivc | 来源:发表于2018-01-31 17:01 被阅读270次
    情况1. xml:ScrollView包含一个FrameLayout,FrameLayout下包含一个ImageView(ImageView就是占据标题栏和状态栏的图片,需要滚动界面的时候,使ImageView渐变)和一个LinearLayout(这个忽略)

    效果图:



    ok的代码(请注意圈圈的):
    失败的代码

    失败的地方(具体效果你们可自己代码测试):

    1. 刚进入界面的时候,图片不透明(第一行透明代码失效)
    2. 当快速滑动界面的时候,透明度会乱,也就是就当往下滑动到(快速)顶部时候,图片显示有可能不是全透明的,在不全透明情况下,慢慢往上滑动,就算滑动到界面中间,图片也可能不是全不透明的

    我的问题是根据网友的这几行字解决的。

    ps:如不是图片,而是一个LinearLayout纯色的透明度渐变,

    (使用什么颜色可改变后面的(255 255 255)这三个参数):
    //白色全透明
    linearLayoutTitle.setBackgroundColor(Color.argb(0, 255, 255, 255));


    //透明度随滑动而改变
    float scale = (float) mDistanceY / (350 - DensityUtil.dip2px(mCxt, 52));
    float alpha = (255 * scale);
    linearLayout.setBackgroundColor(Color.argb((int) alpha, 255, 255, 255));


    //白色不透明
    linearLayoutTitle.setBackgroundColor(Color.argb(255, 255, 255, 255));

    情况2:占据状态栏和标题栏的依然是LinearLayout或ImageView,只不过滚动的不再是ScrollView,而是RecyclerView。其它的不变,所以要监听RecyclerView的滑动变化

    ok的代码:



    主要就是框住的代码。他不像ScrollView那样直接获取dy(视其为高度的变化)就可以了。fffk,之前我一直尝试就单单使用dy,坑了不少时间。

    因为很多朋友多觉得安卓状态栏不好处理,额外提供一下链接解决,不谢

    https://github.com/niorgai/StatusBarCompat

    好Sorry,时间关系,没能用源码解释以上的问题。因为本人已慢慢脱离开发了,为着方便各大朋友,奉献精神应该有噶。。。。

    转载请在开头注明作者详细信息和本文出处 谢谢!

    相关文章

      网友评论

        本文标题:Android 滚动界面让标题栏渐变的问题

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