轮播图的实现

最近的状态真的很差,学习效率巨低,算法也没学好,这里简单补一个轮播图的实现吧。

首先轮播图是基于ViewPager以及PagerAdapter适配器进行使用的。

 

 还是和往常一样,先找到控件,然后再设置适配器以及资源的List集合

其次重新上方两个方法,AttachedToWindow只有当获取到窗口的时候,只执行一次。

这里通过handler对象,通过消息发送机制,发送一个post,这里开一个分线程

 

 

然后每次set++每个三秒执行一次run方法,这样就实现了初步的轮播

其次为了提高用户体验,当用户点击或者长按按压轮播图的时候,这个时候不应该再进行轮播滑动,所以大锯老师还是为我们使用的接口方式,具体使用如下:

 

 首先onTouchEvent方法是ViewPager类里面特有的方法,具体的意思就是当用户触碰到ViewPager控件时,就执行如下操作

这里mTouchListener是我们再MyViewPager类里面设定的一个接口,然后基于回调的机制,在Activity中书写具体的执行操作。

这里的布尔参数也就传递给了Activity

然后活动页面根据用户的动作意图执行相应的代码。

 

 

具体代码如下所示:

 

 当用户按压的时候,true传递给mIsTouch,如果!misTouch为真就代表用户没按压,这样就执行轮播,否则不轮播,等用户不按压之后再等3秒继续再次执行run方法

最后需要添加指示点,先在drawbale文件下书写普通和按压情况下的图标

 

 

 

其次动态添加点的数量(根据图片数量

然后

 

posted @ 2023-03-25 01:12  -她的梦-  阅读(184)  评论(0编辑  收藏  举报