###代码实现 自定义ViewPager

public class BannerViewPager extends ViewPager {private BannerAdapter mAdapter;public BannerViewPager(Context context) {super(context);}public BannerViewPager(Context context, AttributeSet attrs) {super(context, attrs);}public void setAdapter(BannerAdapter adapter) {this.mAdapter = adapter;setAdapter(new  BannerPagerAdapter());}//ViewPager在滑动的时候会一直不断的创建和销毁子View  所以它不会有内存泄露的情况出现class  BannerPagerAdapter extends PagerAdapter{@Overridepublic int getCount() {//为了实现无线循环ViewPager  这里设置ViewPager的最大值为Int的最大类型return Integer.MAX_VALUE;}@Overridepublic boolean isViewFromObject(View view, Object object) {//官方推荐 这么写return view==object;}//加载viewPager的子view@Overridepublic Object instantiateItem(ViewGroup container, int position) {View itemView= mAdapter.getView(position);container.addView(itemView);return  itemView;}//销毁ViewPager的只View@Overridepublic void destroyItem(ViewGroup container, int position, Object object) {container.removeView((View) object);object=null;}}
}复制代码

创建Adapter

public abstract class BannerAdapter {public abstract View getView(int position);
}
复制代码

layout布局代码

    <LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><com.example.administrator.allynmvp.view.BannerViewPagerandroid:id="@+id/banner_vp"android:layout_width="match_parent"android:layout_height="150dp"></com.example.administrator.allynmvp.view.BannerViewPager><ListViewandroid:id="@+id/listView"android:layout_width="match_parent"android:layout_height="match_parent"></ListView></LinearLayout>
复制代码

初始化加载显示

public class MainActivity extends AppCompatActivity implements ViewControl {MusicDataPresenter musicDataPresenter;ListView listView;ProgressBar progressBar;TextView tvError;BannerViewPager mBannerVp;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);getBannerData();}public void getBannerData() {//这里通过网络加载无效广告轮播的图片//初始化控件mBannerVp.setAdapter(new BannerAdapter() {@Overridepublic View getView(int position) {
//这个可以是一个ImageView也可以是一个布局文件 穿一个View进去就可以   这就是适配器模式的好处ImageView imageView=new ImageView(MainActivity.this);imageView.setBackgroundResource(R.mipmap.ic_launcher);return imageView;}});}
复制代码

此文章后续会增加更多的代码解释和扩展 敬请期待~~~

转载于:https://juejin.im/post/5bdda91951882516d50b067a

Android 使用Adapter适配器模式实现无线轮播BannerView相关推荐

  1. Android之自定义ViewPager实现图片的无线轮播

    PS:以前也写过关于图片轮播这一块的博客.不过写的很烂,并且很多情况没有考虑到(没有支持无线轮播,和手势点击事件).因此这里写一篇补上.也是当时太年轻了. 注:图片请放大后再看.否则看不清楚. 学习内 ...

  2. Bannner图片无线轮播

    Banner之无线轮播 首先导入依赖:compile 'com.youth.banner:banner:1.4.9' universal-image-loader-1.9.3-with-sources ...

  3. 无线轮播android,Android无限轮播Banner的实现

    概述 应用首页的广告轮播Banner,一般都会使用ViewPager来实现,但是ViewPager 没有轮播效果. 现成有这么几种实现方案: 1.使用Integer.MAX_VALUE ,理论上很难达 ...

  4. 无线轮播叫小点点和引导页

    无限轮播首先创建Viewpager 1.创建无相轮播的布局 <?xml version="1.0" encoding="utf-8"?> <L ...

  5. Banner无线轮播

     一:先导入Banner依赖 compile 'com.youth.banner:banner:1.4.8' compile 'com.github.bumptech.glide:glide:3. ...

  6. 三个ImageView 实现无线轮播 方法

    - (void)scrollViewDidScroll:(UIScrollView *)scrollView {//开始滚动,判断位置,然后替换复用的三张图[self changeImageWithO ...

  7. android 轮换实现动画,怎么在Android中实现一个首页无限轮播功能

    怎么在Android中实现一个首页无限轮播功能 发布时间:2021-04-12 16:22:49 来源:亿速云 阅读:74 作者:Leah 这期内容当中小编将会给大家带来有关怎么在Android中实现 ...

  8. Android之Adapter用法总结

    本文转自http://kb.cnblogs.com/a/2328334/,转载请注明原出处. Android之Adapter用法总结 作者:Devin Zhang  来源:博客园  发布时间:2012 ...

  9. Android的Adapter用法总结

    Android之Adapter用法总结 1.Adapter概念   定义为将一个类的接口变换成客户端所期待的一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作.   在androi ...

最新文章

  1. 深度分析蔡徐坤的百万流量数据,揭底哪些是假的!
  2. Codeforces Gym 100523E E - Gophers SET
  3. PHP随机字符串生成器
  4. python 基础之第四天
  5. 【云中沙箱】如何快速使用阿里云快速搭建论坛网站?
  6. ZeroC Ice启用SSL通讯的配置
  7. 老司机实战Windows Server Docker:2 docker化现有iis应用的正确姿势
  8. linux之tmp文件夹
  9. 数据库函数依赖及范式
  10. 认知空间是什么意思_为什么会选择3D立体摄影
  11. java对象的我可变属性,不可变对象的所有属性都必须是最终的吗?
  12. 覆盖的面积 HDU - 1255 (扫描线, 面积交)
  13. C语言中浮点数在内存中的存储方式
  14. 比较两个数的大小的代码比较:(C语言)
  15. SpreadJS 15.1 ~【SpreadJS 15.0】
  16. linux重装系统保留文件,linux重装系统,如何保存硬盘中的内容
  17. 计算机专业论文的创新点怎么说,计算机专业毕业生如何写毕业论文
  18. imu和mems的差别_MEMS加速度计,磁力计和定向角
  19. Axure 如何在页面加载时,设置文本框的内容为当前日期
  20. 2022年第四届河南省CCPC大学生程序设计竞赛代码+简单思路(退役战了算是,还好金了)

热门文章

  1. python分类预测降低准确率_python实现吴恩达机器学习练习3(多元分类器和神经网络)...
  2. [BUUCTF-pwn]——wustctf2020_getshell_2
  3. nv4_disp.dll 蓝屏
  4. SSRS 使用(1)建立简单的Report
  5. ftp连接 java.net.ConnectException: Connection refused
  6. SpringMVC以及SSM整合
  7. 前端后分离深入分析 ——浏览器渲染和服务器渲染区别
  8. java Object解析
  9. IntelliJ IDEA中日志分类显示设置
  10. pycharm acejumpchar插件