android studio自动轮播,如何打造一个简单,强大的自动轮播图控件

自动轮播图是安卓开发常用控件,如果在需要开发时,每个地方去写,这样就比较耗时、费力,不妨可以封装成一个自定义控件,在需要使用使只去设置数据就可以了,这样在后续开发中不仅省时,而且可以更好的排错。上面github地址中提供了源码,需要更详细的了解可以去阅读源码一下。

b6a38e93e264

1507193217(1).jpg

一、实现自定义属性

虽然这个并不难,但也是自定义控件常用的特点

首先将控件继承RelativeLayout,并在values文件夹attrs.xml文件中声明

读取属性

TypedArray ta = context.obtainStyledAttributes(attrs, R.styleable.AutoViewpager);

mDuration = ta.getInteger(R.styleable.AutoViewpager_duration, NORMAL_DURATION);

mDotSize = ta.getDimensionPixelSize(R.styleable.AutoViewpager_dotSize, DOT_NORAML_SIZE);

mIsAuto = ta.getBoolean(R.styleable.AutoViewpager_isAuto, true);

mDrawable = ta.getDrawable(R.styleable.AutoViewpager_dotSrc);

mDotPosition = ta.getInteger(R.styleable.AutoViewpager_dotPosition, 2);

//释放资源

ta.recycle();

在代码使用读取出来的属性

注意:在小圆点使用Drawable图片时,由于涉及到图片的selected属性,所以每一个小圆点需要使用到一个新的Drawable,所以需要使用的图片的克隆,否则一个Drawable对象如果使用selected,会引起所有的图片selected,无法实现小圆点的选中状态。

Drawable newDrawable = mDrawable.getConstantState().newDrawable();

imageView.setImageDrawable(newDrawable);

二、设置Viewpager的适配器

为了能无限轮播,将getCount()方法返回Integer的最大值

@Override

public int getCount() {

if (mList != null) {

return Integer.MAX

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值