* 对于ViewFlipper控件,之前我是比较陌生的,也没有去使用过。但是看了慕课网教程之后,就简单写了一个Demo,方便以后使用。慕课网讲解ViewFlipper的链接:http://www.imooc.com/video/2657/0
* Demo很简单。就是一个xml布局+一个Activity。
* 首先是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"
tools:context=".MainActivity" >
<ViewFlipper
android:id="@+id/flipper"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</ViewFlipper>
</RelativeLayout>
* 然后是Activity
package com.example.viewflipper;
import android.app.Activity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.widget.ImageView;
import android.widget.ViewFlipper;
public class MainActivity extends Activity {
private ViewFlipper flipper;
private int[] resid = { R.drawable.a1, R.drawable.a2, R.drawable.a3,
R.drawable.a4, R.drawable.a5 };
private float startX;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
flipper = (ViewFlipper) findViewById(R.id.flipper);
for (int i = 0; i < resid.length; i++) {
flipper.addView(getImagevView(resid[i]));
}
{
// //1. 自动播放的效果
// flipper.setInAnimation(this, R.anim.left_in);
// flipper.setOutAnimation(this, R.anim.left_out);
// flipper.setFlipInterval(2000);// 切换间隔时间
// flipper.startFlipping();// 播放动画
}
}
@Override
public boolean onTouchEvent(MotionEvent event) {
// 2.手势滑动的效果|没加动画,很丑
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
startX = event.getX();
break;
case MotionEvent.ACTION_MOVE:
// 像左滑动
if (startX - event.getX() > 100) {
flipper.showNext();
}
// 向右滑动,看前一页
if (event.getX() - startX > 100) {
flipper.showPrevious();
}
break;
case MotionEvent.ACTION_UP:
break;
default:
break;
}
return super.onTouchEvent(event);
}
public ImageView getImagevView(int resid) {
ImageView imageView = new ImageView(this);
imageView.setBackgroundResource(resid);
return imageView;
}
}