Giter Site home page Giter Site logo

cube-pager-master's Introduction

cube-pager 呈现3D翻转效果的仿ViewPager

演示图

特征

该控件直接继承自ViewGroup,具有以下特点:

  1. 立体三维的翻转效果;
  2. 可以无限循环地向左或者向右翻转;
  3. 可以设置定时翻转;
  4. 支持任意张图片;
  5. CubePager始终只维持3个子View,支持回收复用;
  6. CubePagerAdapter支持notifyDataSetChanged;
  7. 集成小圆点容器控件,关联CubePager即可。

使用

  1. 在module的build.gradle文件中添加依赖:
compile 'com.sheaye:cube-pager:1.0.0'
  1. 在布局文件中定义CubePager:
<com.sheaye.widget.CubePager
    android:id="@+id/m_cube_pager"
    android:layout_width="match_parent"
    android:layout_height="250dp"/>
  1. 继承CubePagerAdapter,T为bean的类型,声明构造方法,重写getItemView方法,例如:
class PicAdapter extends CubePagerAdapter<Integer> {

        public PicAdapter(Context mContext, List<Integer> mData) {
            super(mContext, mData);
        }

        
        @Override
        public View getItemView(int position, ViewGroup parent, View convertView, Integer item) {
            ImageView imageView;
            if (convertView != null) {
                imageView = (ImageView) convertView;
            } else {
                imageView = new ImageView(mContext);
                imageView.setScaleType(ImageView.ScaleType.CENTER);
                imageView.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
            }
            imageView.setImageResource(item);
            return imageView;
        }
}
  1. 设置CubePager的特性,设置适配器:
mPagerAdapter = new PicAdapter(this, mPicList);
        mCubePager
                .setWith3D(true) // 设置是否显示3D效果
                .setAutoMove(true) // 设置自动翻页
                .setMaxRotate(50) // 设置旋转的最大夹角
                .setInterval(4000) // 设置翻页间隔时间,仅自动翻页为true时有效
                .setDuration(2000) // 设置翻页持续时间,仅自动翻页为true时有效
                .setAdapter(mPagerAdapter);

        mDotsLayout.setUpWithCubePager(mCubePager);
  1. 设置DotsLayout,添加小圆点容器

xml布局:dot_selector可以为小圆点设置selector

<com.sheaye.widget.DotsLayout
    android:id="@+id/m_dots_layout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:paddingBottom="10dp"
    android:layout_gravity="bottom"
    app:dot_selector="@drawable/selector_dot"/>

关联CubePager:需要在CubePager设置Adapter之后关联

mDotsLayout.setUpWithCubePager(mCubePager);
  1. 更多使用详情,请参照sample

参考链接:

https://www.ibm.com/developerworks/cn/opensource/os-cn-android-anmt2/index.html?ca=drs- http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0928/3531.html http://blog.csdn.net/mr_immortalz/article/details/51918560

cube-pager-master's People

Contributors

sheaye avatar

Stargazers

 avatar UaoanLao avatar  avatar aidisheng avatar  avatar 椰子 avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.