话不多说,直接上图:




activity.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".MainActivity"><android.support.v4.view.ViewPagerandroid:id="@+id/vp_advs"android:layout_width="match_parent"android:layout_height="250dp"android:layout_marginTop="40dp"></android.support.v4.view.ViewPager></LinearLayout>

MainActivity.java:

public class MainActivity extends AppCompatActivity {private ViewPager viewPager;private ImageView imageView1,imageView2,imageView3,imageView4;private List<ImageView> imageViewList;private AdvsViewPagerAdapter adapter;private Handler handler;int i;  //用来记录判断哪张轮播图片@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);viewPager = findViewById(R.id.vp_advs);initImageViewList();        //  将图片放到集合中保存起来adapter = new AdvsViewPagerAdapter(imageViewList);viewPager.setAdapter(adapter);i = 0;handler = new Handler(){@Overridepublic void handleMessage(Message msg) {//  更改轮播图片viewPager.setCurrentItem(i % 4);i++;}};//顶部图片轮播,还没做手动切换之后的优化advsChange();}private void advsChange() {handler.post(new Runnable(){@Overridepublic void run() {//延时2shandler.postDelayed(this, 2000);handler.sendEmptyMessage(0);}});}private void initImageViewList() {//  先让各个对象拿到资源imageView1 = new ImageView(this);imageView1.setBackgroundResource(R.drawable.ic_one);imageView2 = new ImageView(this);imageView2.setBackgroundResource(R.drawable.ic_twoi);imageView3 = new ImageView(this);imageView3.setBackgroundResource(R.drawable.ic_three);imageView4 = new ImageView(this);imageView4.setBackgroundResource(R.drawable.ic_four);//  再放入集合中imageViewList = new ArrayList<>();imageViewList.add(imageView1);imageViewList.add(imageView2);imageViewList.add(imageView3);imageViewList.add(imageView4);}
}

AdvsViewPagerAdapter.java:

public class AdvsViewPagerAdapter extends PagerAdapter {private List<ImageView> imageViewList ;     //  图片都存在了集合中public AdvsViewPagerAdapter(List<ImageView> imageViewList) {super();this.imageViewList = imageViewList;}// 获取要滑动的控件的数量,在这里我们以滑动的广告栏为例,那么这里就应该是展示的广告图片的ImageView数量@Overridepublic int getCount() {return imageViewList.size();}// 当要显示的图片可以进行缓存的时候,会调用这个方法进行显示图片的初始化,我们将要显示的ImageView加入到ViewGroup中,然后作为返回值返回即可@NonNull@Overridepublic Object instantiateItem(@NonNull ViewGroup container, int position) {container.addView(imageViewList.get(position));return imageViewList.get(position);}// PagerAdapter只缓存三张要显示的图片,如果滑动的图片超出了缓存的范围,就会调用这个方法,将图片销毁@Overridepublic void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {container.removeView(imageViewList.get(position));}// 来判断显示的是否是同一张图片,这里我们将两个参数相比较返回即可@Overridepublic boolean isViewFromObject(@NonNull View view, @NonNull Object object) {return view == object;}
}

Android 自动轮播图+滑动效果相关推荐

  1. 自动轮播图html代码适应手机,JS实现自动轮播图效果(自适应屏幕宽度+手机触屏滑动)...

    1.本文使用js+jQuery实现轮播图,需要引用jquery包,另种实现分别是animate实现自适应的轮播,以及transform平滑轮播(在注释代码中). 2.代码中的图片大家自己更换就可以了, ...

  2. MUI - 自动轮播图 实现

    轮播图的设置,可手动,也可自动轮播.全凭代码一句话. 截图示下: 下面直接上代码,请参考. 代码如下: <!DOCTYPE html> <html><head>&l ...

  3. php自动轮播图代码,bootstrap框架实现自动轮播图的代码

    大家在浏览网站时有没有发现,几乎每个网站的首页都有轮播图,作为一个前端开发人员,你会用bootstrap框架写图片轮播吗?这篇文章就给大家分享bootstrap框架实现自动轮播的代码,有一定的参考价值 ...

  4. 纯前端实现—手动轮播图

    实现效果: 前面有篇文讲解过初级轮播图--https://gu-han-zhe.blog.csdn.net/article/details/121309051,效果有点低级,所以这篇给B格提升些! 共 ...

  5. jq实现轮播图(景深效果)——功能实现

    最近工作不是很忙,正好可以多多练习一下jq,毕竟这块我实在是基础薄弱,在工作中经常会遇到各种各样的问题,导致效率很低. 今天的案例是一个自动轮播图: 上面的轮播图跟以往的轮播有点区别,常见的轮播图是只 ...

  6. android+qq底部界面,Android 高仿QQ 界面滑动效果

    Android高仿QQ界面滑动效果 点击或者滑动切换画面,用ViewPager实现, 首先是布局文件: android:layout_width="match_parent" an ...

  7. 2021-09-30 js手动轮播图

    手动轮播图 开发思路: 网页布局,完成基本的网页格式: 实现按钮的点击事件: 实现按钮点击时,图片的切换: 实现按钮点击时,数字改变( 4/8 ): 实现按钮点击时,标题改变 <style> ...

  8. 原生JS制作自动+手动轮播图,附带二级分类菜单

    原生JS制作自动+手动轮播图,附带二级分类菜单 包含以下功能: 1.鼠标移开自动轮播 2.鼠标移入停止自动轮播 3.点击左右按钮可手动切换图片 4.点击索引小圆点可手动切换图片 5.鼠标移入一级菜单展 ...

  9. android 滑动标签框架,Android实现网易严选标签栏滑动效果

    Android实现网易严选标签栏滑动效果 发布时间:2020-10-13 00:13:46 来源:脚本之家 阅读:85 作者:wlkdb 标签栏是一个非常常见的控件,似乎也是一个比较简单的控件,但如果 ...

  10. js点击轮播或者自动轮播图代码

    <!DOCTYPE html> <html> <head lang="en">     <meta charset="gbk&q ...

最新文章

  1. 休眠调试–查找查询的来源
  2. 【 jquery 】常用
  3. 【剑指offer】面试题10- I:斐波那契数列(Java)
  4. android room表关联,如何在首次运行时填充Android Room数据库表?
  5. treeview节点的复制 c# 1614606987
  6. js实现文章显示部分内容
  7. ubuntu下安装code::blocks
  8. VB 2010 (32)泛型方法
  9. S7-1500PLC仿真
  10. 边缘计算与智慧城市应用
  11. 风格迁移!一文读懂StyleGAN进化过程!
  12. 关于使用媒体查询@meda失效原因的总结
  13. 再谈10000小时,三板斧破四困境
  14. Unity UI 框架
  15. Windows SSH无法连接之“connection reset by ip_address port 22“问题解决
  16. 绝对连续的一个等价定义
  17. 常用9011-9018三极管参数
  18. html5 css3画八卦图,用纯CSS3绘制乾坤八卦图
  19. 全球首个5G全覆盖国家诞生,华为成幕后最大功臣!
  20. 顺丰,披着快递马甲的科技公司?

热门文章

  1. golang笔记(1)-数据库查询结果映射至结构体
  2. 微软职位内部推荐-Software Development Engineering II
  3. SVN missing 解决
  4. C语言形参和实参以及C#中的ref
  5. BertSum-基于BERT模型的抽取式文本摘要
  6. 算法在岗一年的经验总结
  7. 介绍4个大神常用而你不常用的python函数
  8. 谈一谈AI算法部署的一些经验
  9. 火山翻译亮相飞书未来无限大会,打造全新翻译体验
  10. [arXiv18]更快的基于非二叉化自底向上策略的转移系统成分句法分析