要实现图片自定轮显,首先要会使用ViewPager控件,还不会使用ViewPager的同学可以https://blog.csdn.net/zenmela2011/article/details/79908728学习。
图片自动轮显就是在viewpager的基础上让它能自动的进行切换,步骤如下:
1.扩展viewpager自定义一个MyScrollImageView类;
2.为MyScrollImageView定义适配器,装载图片;
3.定义图片滑动动画时间控制类;
一、为 自定义ViewPager控件编写适配器
// 适配器
public class MyPagerAdapter extends PagerAdapter {
private Activity mActivity; // 上下文
private List<View> mListViews; // 图片组
public MyPagerAdapter(){
}
public MyPagerAdapter(Activity mActivity,List<View> mListViews){
this.mActivity=mActivity;
this.mListViews=mListViews;
}
public int getCount() {
if (mListViews.size() == 1) {// 一张图片时不用流动
return mListViews.size();
}
return Integer.MAX_VALUE;
}
/**
返回List中的图片元素装载到控件中
*/
public Object instantiateItem(View v, int i) {
if (((ViewPager) v).getChildCount() == mListViews.size()) {
((ViewPager) v)
.removeView(mListViews.get(i % mListViews.size()));
}
((ViewPager) v).addView(mListViews.get(i % mListViews.size()), 0);
return mListViews.get(i % mListViews.size());
}
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == (arg1);
}
public void destroyItem(ViewGroup view, int i, Object object) {
view.removeView(mListViews.get(i%mListViews.size()));
}
}
二、自定义一个MyScrollImageView类
自定义一个MyScrollImageView类,主要扩展一个start(…)方法,该方法实现按时间间隔不断切换图片
public class MyImgScroll extends ViewPager {