ImageView实现图片轮播
Created By hz2018-1-13
1.配置文件配置
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageSwitcher
android:id="@+id/img_banner_switcher"
android:layout_marginTop="48dp"
android:layout_width="match_parent"
android:layout_height="360dp"/>
</LinearLayout>
2.ImageSwitcher 实例化
private void initView() {
mSwitcher = (ImageSwitcher) findViewById(R.id.img_banner_switcher);
mSwitcher.setFactory(new ImageFactoty(this));
mSwitcher.setImageResource(R.drawable.one);
}
private class ImageFactoty implements ViewSwitcher.ViewFactory {
private Context mCtx;
public ImageFactoty(Context ctx) {
this.mCtx = ctx;
}
@Override
public View makeView() {
ImageView imageView = new ImageView(mCtx);
imageView.setBackgroundColor(0xFFFFFFFF);
imageView.setScaleType(ImageView.ScaleType.CENTER);
imageView.setLayoutParams(new ImageSwitcher.LayoutParams(
LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.FILL_PARENT));
return imageView;
}
}
3.定时器操作
private void startTimer() {
if (mTimerTask == null) {
mTimerTask = new TimerTask() {
@Override
public void run() {
mHandler.sendEmptyMessage(0);
}
};
}
if (mTimer == null) {
mTimer = new Timer();
}
mTimer.schedule(mTimerTask,0,1500);
}
private void stopTimer() {
if (mTimerTask != null) {
mTimerTask.cancel();
mTimerTask = null;
}
if (mTimer != null) {
mTimer.cancel();
mTimer = null;
}
}
private Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
exchangeBanner();
}
};
private void exchangeBanner() {
if (mBannerIndex == INT_BANNER_SIZE) {
mBannerIndex = 0;
}
mSwitcher.setImageResource(banners[mBannerIndex++]);
}