很多人都是用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群和关注微信公众号
IT专栏微信公众号.jpg请不要重复添加
一群:259182457 二群:471496394
三群:137038987 四群:256636915
网友评论