您的位置:首页 > 其它

ImageSwitcher 实现图片轮播功能

2018-01-13 21:20 447 查看
ImageView实现图片轮播Created By hz
2018-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++]);
}

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: