今天,简单讲讲Android图片轮播功能。
其实图片轮播功能就是使用ViewPager和Handler,网上查找了资料,把这个简单的问题写的很复杂。其实一个自定义控件完全可以解决。这里直接上代码,不在做过多的讲解了。有问题的可以提问,我看到后会尽量回复。
一.定义相关变量
private final int DELAY_TIME = 3000;//自动轮播时间
private List<String> mUrls;
private List<ImageView> mViewpagerViews; //轮播图片的列表
private List<ImageView> mDotImageviews; //轮播圆点的列表
private Context context;
private int size;//圆点的大小
private int margin;//圆点的间距
private int count;//viewpager中view的数量
private ViewPager mViewPager;
private LinearLayout mDotlayout;//圆点布局
private MyPager mPagerAdapter;
private int currentItem;//当前viewpager索引
private Handler handler = new Handler();
private BannerClicklistener mBannerClicklistener;
2.初始化代码
private void init(Context context, AttributeSet attrs) {
this.context = context;
mUrls = new ArrayList<>();
mViewpagerViews = new ArrayList<>();
mDotImageviews = new ArrayList<>();
//拿到自定义的属性数组
TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.Banner);
//得到数组里的自定义的size(圆点大小)
size = typedArray.getDimensionPixelSize(R.styleable.Banner_size, 10);
//得到数组里的自定义的margin(圆点间距)
margin = typedArray.getDimensionPixelSize(R.styleable.Banner_margin, 10);
typedArray.recycle();//通知jvm的垃圾回收器,当你回收对象的时候,一定要把我回收了
View view = LayoutInflater.from(context).inflate(R.layout.banner_layout, this, true);
// addView(view);