Android ScrollView滑动实现仿QQ空间标题栏渐变


今天来研究的是ScrollView-滚动视图,滚动视图又分横向滚动视图(HorizontalScrollView)和纵向滚动视图(ScrollView),今天主要研究纵向的。相信大家在开发中经常用到,ScrollView的功能已经很强大了,但是仍然满足不了我们脑洞大开的UI设计师们,所以我们要自定义…本篇文章主要讲监听ScrollView的滑动实现仿QQ空间标题栏渐变,先看一下效果图:

 

好了我们切入主题。

有可能你不知道的那些ScrollView属性
 •android:scrollbars
设置滚动条显示。none(隐藏),horizontal(水平),vertical(垂直)
 •android:scrollbarStyle
设置滚动条的风格和位置。设置值:insideOverlay、insideInset、outsideOverlay、outsideInset
 •android:scrollbarThumbHorizontal
设置水平滚动条的drawable。
 •android:soundEffectsEnabled
设置点击或触摸时是否有声音效果
 •android:fadingEdge
设置拉滚动条时,边框渐变的放向。none(边框颜色不变),horizontal(水平方向颜色变淡),vertical(垂直方向颜色变淡)。参照fadingEdgeLength的效果图 android:fadingEdgeLength 设置边框渐变的长度
 •android:scrollX
以像素为单位设置水平方向滚动的的偏移值,在GridView中可看的这个效果
 •android:scrollY
以像素为单位设置垂直方向滚动的的偏移值
 •android:scrollbarAlwaysDrawHorizontalTrack
设置是否始终显示垂直滚动条
 •android:scrollbarDefaultDelayBeforeFade
设置N毫秒后开始淡化,以毫秒为单位。 

以上这些属性有兴趣的可以去研究一下,这里就不详细讲了。很多属性并不常用,下面说说我们经常用的,怎样监听ScrollView的滑动并实现标题栏的渐变?

ScrollView滑动监听:

Google并没有给我们提供ScrollView的滑动距离、是否滑动到布局底部、顶部的方法,但是提供了一个onScrollChanged方法:

@Override
  protected void onScrollChanged(int x, int y, int oldx, int oldy) {
    super.onScrollChanged(x, y, oldx, oldy);
    //todo:
    }
  }

通过查看源码注释,

/**
     * This is called in response to an internal scroll in this view (i.e., the
     * view scrolled its own contents). This is typically as a result of
     *
https://github.com/Hankkin/GradationTitleBar
项目里面我还添加了一个带banner的,原理是一样的。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持phpstudy。


« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3