美文网首页Android知识Android开发
Android使用ViewFlipper实现自动轮播

Android使用ViewFlipper实现自动轮播

作者: b812b5a08a93 | 来源:发表于2016-11-24 10:38 被阅读1940次

    很多人都是用ViewPager来实现这一效果,其实ViewFlipper也是可以实现的,下面将实现一个最简单的图片自动轮播,我将一些核心代码贴出来供参考,扫描下方二维码,获取完整源码。

    效果图
    screenshot.png
    核心代码
    activity_main.xml
    <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" >
         <ViewFlipper 
             android:id="@+id/viewFlipper"
             android:layout_width="match_parent"
             android:layout_height="match_parent" />
    </RelativeLayout>
    
    
    切换动画
    left_in.xml
    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android">
        <translate 
            android:fromXDelta="-100%p"
            android:toXDelta="0"
            android:duration="1000" />
        <alpha 
            android:fromAlpha="0"
            android:toAlpha="1.0"
            android:duration="1000" />
    </set>
    
    
    left_out.xml
    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android">
        <translate 
            android:fromXDelta="0"
            android:toXDelta="100%p"
            android:duration="1000" />
        <alpha 
            android:fromAlpha="1.0"
            android:toAlpha="0"
            android:duration="1000" />
    </set>
    
    MainActivity.java
    package com.huan.viewflipper;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.widget.ImageView;
    import android.widget.ViewFlipper;
    
    public class MainActivity extends Activity {
        ViewFlipper viewFlipper;
        int[] ids={R.drawable.one,R.drawable.two,R.drawable.three,R.drawable.four};
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            viewFlipper=(ViewFlipper) findViewById(R.id.viewFlipper);
            for (int i = 0; i < ids.length; i++) {
                ImageView iview=getImageView(ids[i]);
                viewFlipper.addView(iview);
            }
            viewFlipper.setInAnimation(this,R.anim.left_in);
            viewFlipper.setOutAnimation(this,R.anim.left_out);
            //设置多少秒切换
            viewFlipper.setFlipInterval(5000);
            viewFlipper.startFlipping();
        }
        private ImageView getImageView(int id) {
            ImageView imageView=new ImageView(this);
            imageView.setBackgroundResource(id);
            return imageView;
        }
    }
    

    扫描下方二维码,获取完整源码

    欢迎加入QQ群和关注微信公众号

    请不要重复添加
    一群:259182457       二群:471496394
    三群:137038987       四群:256636915

    IT专栏微信公众号.jpg

    相关文章

      网友评论

        本文标题:Android使用ViewFlipper实现自动轮播

        本文链接:https://www.haomeiwen.com/subject/kcjbpttx.html