码迷,mamicode.com
首页 > 其他好文 > 详细

JazzyViewPager的使用

时间:2016-05-12 19:17:38      阅读:213      评论:0      收藏:0      [点我收藏+]

标签:

看了翔哥的blog,本篇blog来记录下github JazzyViewPager的使用。

直接将JazzyViewPager的代码copy进项目中。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="csdn.viewpagerexpand.MainActivity">

    <csdn.viewpagerexpand.view.JazzyViewPager
        android:id="@+id/vp"
        android:layout_width="match_parent"
        android:layout_height="300dp"
        android:text="Hello World!" />
</RelativeLayout>
public class MainActivity extends AppCompatActivity {

    private JazzyViewPager viewPager;

    private int[] res=new int[]{R.drawable.banner_1 ,R.drawable.banner_2 ,R.drawable.banner_3};
    private List<ImageView> imageViews=new ArrayList<>();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_main);

        viewPager= (JazzyViewPager) findViewById(R.id.vp);

        //初始化数据
        initDate();
        //@关键1 设置切换效果
        viewPager.setTransitionEffect(JazzyViewPager.TransitionEffect.Accordion);
        viewPager.setAdapter(new PagerAdapter() {
            @Override
            public int getCount() {
                return res.length;
            }

            @Override
            public boolean isViewFromObject(View view, Object object) {
                return view==object;
            }

            @Override
            public Object instantiateItem(ViewGroup container, int position) {

                container.addView(imageViews.get(position));

                //@关键2
                viewPager.setObjectForPosition(imageViews.get(position), position);

                return imageViews.get(position);
            }

            @Override
            public void destroyItem(ViewGroup container, int position, Object object) {

                ((ViewPager)container).removeView(imageViews.get(position));

            }
        });

    }

    private void initDate(){

        for (int i=0;i<res.length;i++){
            ImageView imageView=new ImageView(getApplicationContext());
            imageView.setScaleType(ImageView.ScaleType.FIT_XY);
            imageView.setImageResource(res[i]);
            imageViews.add(imageView);
        }

    }
}

JazzyViewPager提供了如下多的动画切换方式:

public enum TransitionEffect {
        Standard,
        Tablet,
        CubeIn,
        CubeOut,
        FlipVertical,
        FlipHorizontal,
        Stack,
        ZoomIn,
        ZoomOut,
        RotateUp,
        RotateDown,
        Accordion
    }

效果都很赞,如果是在产品允许的条件下,适当的使用一些动画相信会带来更好的体验效果。

JazzyViewPager的使用

标签:

原文地址:http://blog.csdn.net/u014733374/article/details/51353428

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!