Android知识Android开发

Android使用ViewFlipper实现自动轮播

2016-11-24  本文已影响1940人  b812b5a08a93

很多人都是用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
上一篇 下一篇

猜你喜欢

热点阅读