ImageSwitcher 实现图片轮播功能

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++]);
    }

猜你喜欢

转载自blog.csdn.net/u010367265/article/details/79053788
今日推荐