登录

去注册

登录

注册

去登录

注册

LitePager(仿网易云音乐-歌单广场效果)

wuyr   2019-05-15   收藏

LitePager,一个轻量级的ViewPager,仿新版网易云歌单广场

博客详情: https://blog.csdn.net/u011387817/article/details/89142467

使用方式:

添加依赖:

implementation 'com.wuyr:litepager:1.0.0'

APIs:

MethodDescription
addViews(int... layouts)批量添加子View
addViews(View... views)批量添加子View
setSelection(View target)选中指定子View
setSelection(int index)根据索引选中子View
setOrientation(int orientation)设置方向(默认: ORIENTATION_HORIZONTAL):
ORIENTATION_HORIZONTAL(水平)
ORIENTATION_VERTICAL(垂直)
setFlingDuration(long duration)设置动画的时长
setMaxScale(float maxScale)设置最大缩放比例
setMinScale(float minScale)设置最小缩放比例
setMaxAlpha(float maxAlpha)设置最大不透明度
setMinAlpha(float minAlpha)设置最小不透明度
setOnScrollListener(OnScrollListener listener)设置滚动状态监听:
STATE_IDLE(静止状态)
STATE_DRAGGING_LEFT(向左拖动)
STATE_DRAGGING_RIGHT(向右拖动)
STATE_DRAGGING_TOP(向上拖动)
STATE_DRAGGING_BOTTOM(向下拖动)
STATE_SETTLING_LEFT(向左调整)
STATE_SETTLING_RIGHT(向右调整)
STATE_SETTLING_TOP(向上调整)
STATE_SETTLING_BOTTOM(向下调整)
setOnItemSelectedListener(SelectedListener listener)设置子View被选中的监听
getSelectedChild()获取当前选中的子View

Attributes:

NameFormatDescription
orientationenum (默认: horizontal)
horizontal(水平)
vertical(垂直)
方向
flingDurationinteger动画时长
maxScalefloat (默认: 1)最大缩放比例
minScalefloat (默认: 0.8)最小缩放比例
maxAlphafloat (默认: 1)最大不透明度
minAlphafloat (默认: 0.4)最小不透明度

添加子View方式:

XML

    <com.wuyr.litepager.LitePager
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <View
            android:layout_width="150dp"
            android:layout_height="200dp"
            android:background="#F00" />

        <View
            android:layout_width="150dp"
            android:layout_height="200dp"
            android:background="#0F0"/>

        <View
            android:layout_width="150dp"
            android:layout_height="200dp"
            android:background="#00F"/>
    </com.wuyr.litepager.LitePager>

或者

    LitePager litePager = ...;
    View child1 = ...;
    View child2 = ...;
    View child3 = ...;
    //直接添加子View
    litePager.addViews(child1, child2, child3);
    
    //或者通过布局添加
    litePager.addViews(R.layout.view_child1, R.layout.view_child2, R.layout.view_child3);


Demo下载: app-debug.apk

库源码地址: https://github.com/Ifxcyr/LitePager

效果 (图1为网易云原效果):

preview preview
preview preview

项目地址:https://github.com/wuyr/LitePager