Android 轮播图—ViewFlipper
ONE Goal ,ONE Passion!
上一篇写了轮播图,使用ViewPager实现,这篇就使用ViewFlipper来实现吧.
ViewPager实现轮播图:
http://blog.csdn.net/fengltxx/article/details/50342605
第1步: 在xml中使用
特别简单没有什么需要注意的
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
android:orientation="vertical"
tools:context="com.example.myapplication.HomeActivity">
<ViewFlipper
android:id="@+id/flipper"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:flipInterval="2000">
</ViewFlipper>
</LinearLayout>
第2步: 开始敲
package btlh.eductaion.activity;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.widget.ImageView;
import android.widget.ViewFlipper;
import com.bumptech.glide.Glide;
import net.tsz.afinal.FinalBitmap;
import java.util.ArrayList;
import java.util.FormatFlagsConversionMismatchException;
import java.util.List;
import btlh.eductaion.BaseActivity;
import btlh.eductaion.R;
public class HomeActivity extends BaseActivity implements View.OnClickListener, View.OnTouchListener {
private ImageView image1, image2, image3, image4, image5, image6;
ImageView iv1, iv2, iv3, iv4;
private ViewFlipper mFlipper;
private List<ImageView> mList;
FinalBitmap fb;
Activity act;
private ImageView iv;
List<String> ImageList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
act = this;
init();
}
public void init() {
mFlipper = (ViewFlipper) findViewById(R.id.flipper);
mList = new ArrayList<>();
ImageList = new ArrayList<>();
ImageList.add("http://image24.360doc.com/DownloadImg/2011/03/0513/9707070_34.gif");
ImageList.add("http://image24.360doc.com/DownloadImg/2011/03/0513/9707070_35.gif");
ImageList.add("http://image24.360doc.com/DownloadImg/2011/03/0513/9707070_36.gif");
addPicture();
}
/**
* 为轮播图添加图片
*/
private void addPicture() {
for (int i = 0; i < ImageList.size(); i++) {
iv = new ImageView(this);
mList.add(iv);
Glide.with(this).load(ImageList.get(i)).into(mList.get(i));
final int I = i;
//为item注册点击监听
regristerListener(i);
//将图片添加到viewFlipper中
mFlipper.addView(mList.get(i));
}
mFlipper.startFlipping();
}
//如果想实现手指滑动改变重写ontouch事件.去判断滑动
@Override
public boolean onTouch(View v, MotionEvent event) {
// 如果像左滑动
mFlipper.showPrevious();
//如果像右滑动
mFlipper.showNext();
return true;
}
}
/**
* 图片的监听
* @param i
*/
private void regristerListener(final int i) {
mList.get(i).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
System.out.println("点击的是---" + i);
// 项目中一般根据 i 取得对应的数据去做一些详情处理
}
});
}