V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
huanhailiuxin
V2EX  ›  分享创造

CoolViewPager:即刻刷新,自定义边缘效果颜色,双向自动循环,内置垂直切换效果,想要的都在这里

  •  
  •   huanhailiuxin ·
    HuanHaiLiuXin · 2018-06-06 10:29:28 +08:00 · 1095 次点击
    这是一个创建于 2168 天前的主题,其中的信息可能已经有所发展或是发生改变。

    About

    CoolViewPager是一个自定义 ViewPager,具有以下功能特征:

    1. 支持水平及垂直方向循环滚动
    2. 支持自动滚动
    3. 支持自动滚动方向、滚动时间、间隔时间的设置
    4. 支持调用 notifyDataSetChanged 实时刷新界面
    5. 支持边缘效果颜色的设置
    6. 为垂直滚动提供了适宜的界面切换效果

    Apk

    demo.apk

    Usage

    在你的 build.gradle 中添加依赖

    dependencies {
        implementation 'com.huanhailiuxin.view:coolviewpager:1.0.0'
    }
    

    在你的布局文件中引入 CoolViewPager

    <com.huanhailiuxin.coolviewpager.CoolViewPager
        android:id="@+id/vp"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        />
    

    在 Java 代码中获取 CoolViewPager,设置各种属性,为其设置 Adapter

    public class ActivityEdgeEffectColor extends BaseActivity {
        private CoolViewPager vp;
        
        ****
        CoolViewPager vp = findViewById(R.id.vp);
        vp.setScrollMode(CoolViewPager.ScrollMode.HORIZONTAL);
        vp.setAdapter(adapter);
        ****
    }
    

    Attributes

    CoolViewPager 具有以下自定义属性,我们可以在 xml 布局文件或通过 Java 代码进行设置:

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <declare-styleable name="CoolViewPager">
            <attr name="cvp_scrollmode" format="enum">
                <enum name="horizontal" value="0" />
                <enum name="vertical" value="1" />
            </attr>
            <attr name="cvp_autoscroll" format="boolean" />
            <attr name="cvp_intervalinmillis" format="integer"/>
            <attr name="cvp_autoscrolldirection" format="enum">
                <enum name="forward" value="0" />
                <enum name="backward" value="1" />
            </attr>
            <attr name="cvp_infiniteloop" format="boolean" />
            <attr name="cvp_scrollduration" format="integer"/>
            <attr name="cvp_drawedgeeffect" format="boolean"/>
            <attr name="cvp_edgeeffectcolor" format="color"/>
        </declare-styleable>
    </resources>
    

    Via XML

    <com.huanhailiuxin.coolviewpager.CoolViewPager
        android:id="@+id/vp"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:cvp_scrollmode="vertical"
        app:cvp_autoscroll="true"
        app:cvp_intervalinmillis="1000"
        app:cvp_autoscrolldirection="backward"
        app:cvp_infiniteloop="true"
        app:cvp_scrollduration="600"
        app:cvp_drawedgeeffect="true"
        app:cvp_edgeeffectcolor="@color/colorPrimary"
        />
    

    Via Java code

    public class ActivityEdgeEffectColor extends BaseActivity {
        private CoolViewPager vp;
        
        private void initViewPager(){
            vp = findViewById(R.id.vp);
            vp.setScrollMode(CoolViewPager.ScrollMode.VERTICAL);
            vp.setAutoScroll(true,1000);
            vp.setAutoScrollDirection(CoolViewPager.AutoScrollDirection.BACKWARD);
            vp.setInfiniteLoop(true);
            vp.setScrollDuration(true,600);
            vp.setDrawEdgeEffect(true);
            vp.setEdgeEffectColor(getResources().getColor(R.color.colorPrimary));
        }
    }
    
    

    Author

    License

    Copyright 2018 HuanHaiLiuXin
    
    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at
    
       http://www.apache.org/licenses/LICENSE-2.0
    
    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
    
    1 条回复    2018-06-06 11:29:08 +08:00
    c9
        1
    c9  
       2018-06-06 11:29:08 +08:00
    星星
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3233 人在线   最高记录 6547   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 14:16 · PVG 22:16 · LAX 07:16 · JFK 10:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.