首页 > 其他分享 >【MyAndroid】轮播图和指示器

【MyAndroid】轮播图和指示器

时间:2023-09-19 11:35:44浏览次数:42  
标签:MyAndroid layout 轮播 指示器 bannerViewPager mViews ImageView banner LayoutInflater


轮播图

【MyAndroid】轮播图和指示器_Android

ImageView iv1 = (ImageView) LayoutInflater.from(this).inflate(R.layout.banner_item,bannerViewPager,false);
        ImageView iv2 = (ImageView) LayoutInflater.from(this).inflate(R.layout.banner_item,bannerViewPager,false);
        ImageView iv3 = (ImageView) LayoutInflater.from(this).inflate(R.layout.banner_item,bannerViewPager,false);
        ImageView iv4 = (ImageView) LayoutInflater.from(this).inflate(R.layout.banner_item,bannerViewPager,false);
        ImageView iv5 = (ImageView) LayoutInflater.from(this).inflate(R.layout.banner_item,bannerViewPager,false);
        final ImageView iv6 = (ImageView) LayoutInflater.from(this).inflate(R.layout.banner_item,bannerViewPager,false);

        iv1.setImageResource(R.mipmap.ic_img01);
        iv2.setImageResource(R.mipmap.ic_img02);
        iv3.setImageResource(R.mipmap.ic_img03);
        iv4.setImageResource(R.mipmap.ic_img04);
        iv5.setImageResource(R.mipmap.ic_img05);
        iv6.setImageResource(R.mipmap.ic_img06);

        //一开始只添加5个Item
        final List<ImageView> mViews = new ArrayList<>();
        mViews.add(iv1);
        mViews.add(iv2);
        mViews.add(iv3);
        mViews.add(iv4);
        mViews.add(iv5);
        
        bannerViewPager = findViewById(R.id.banner);

        ViewPagerAdapter  mAdapter = new ViewPagerAdapter(mViews, new OnPageClickListener() {
            @Override
            public void onPageClick(View view, int position) {
                Log.d("cylog","position:"+position);
            }
        });
        bannerViewPager.setAdapter(mAdapter);

指示器

【MyAndroid】轮播图和指示器_交互设计_02

<com.example.indicatorlib.views.PageIndicatorView
        android:id="@+id/pageIndicatorView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="48dp"
        app:layout_constraintTop_toBottomOf="@id/banner"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        attrs:piv_padding="12dp"
        attrs:piv_radius="8dp" />
PageIndicatorView pageIndicatorView = findViewById(R.id.pageIndicatorView);
        pageIndicatorView.setViewPager(bannerViewPager.getViewPager());
        pageIndicatorView.setAnimationType(AnimationType.WORM);//动画效果设置

源码地址:
gitee:https://gitee.com/lc951/my-android github:https://github.com/lichong951/MyAndroid/

自研产品推荐

历时一年半多开发终于smartApi-v1.0.0版本在2023-09-15晚十点正式上线
smartApi是一款对标国外的postman的api调试开发工具,由于开发人力就作者一个所以人力有限,因此v1.0.0版本功能进行精简,大功能项有:

  • api参数填写
  • api请求响应数据展示
  • PDF形式的分享文档
  • Mock本地化解决方案
  • api列表数据本地化处理
  • 再加上UI方面的打磨

为了更好服务大家把之前的公众号和软件激活结合,如有疑问请大家反馈到公众号即可,下个版本30%以上的更新会来自公众号的反馈。

嗯!先解释不上服务端原因,API调试工具的绝大多数时候就是一个数据模型、数据处理、数据模型理解共识的问题解决工具,所以作者结合自己十多年开发使用的一些痛点来打造的,再加上服务端开发一般是面向企业的,作者目前没有精力和时间去打造企业服务。再加上没有资金投入所以服务端开发会滞后,至于什么时候会进行开发,这个要看募资情况和用户反馈综合考虑。虽然目前国内有些比较知名的api工具了,但作者使用后还是觉得和实际使用场景不符。如果有相关吐槽也可以在作者的公众号里反馈蛤!

下面是一段smartApi使用介绍:

【MyAndroid】轮播图和指示器_viewpager_03

下载地址:

https://pan.baidu.com/s/1kFAGbsFIk3dDR64NwM5y2A?pwd=csdn


标签:MyAndroid,layout,轮播,指示器,bannerViewPager,mViews,ImageView,banner,LayoutInflater
From: https://blog.51cto.com/u_16264967/7523828

相关文章

  • 【MyAndroid】AndroidManifest.xml合并规则详解和注意事项
    APK或AndroidAppBundle文件只能包含一个AndroidManifest.xml文件,但AndroidStudio项目可以包含多个清单文件,这些清单文件由主源代码集、build变体和导入的库提供。因此,在构建应用时,Gradle构建系统会将所有清单文件合并成一个清单文件打包到应用中。清单合并工具遵循某些......
  • 页面中点击按钮需要新建轮播(需要新建多个),出现顺序错乱的问题
    当页面中通过点击按钮切换轮播,即点击按钮需要newswiper,新建后,页面中swiper内容没有问题但是,点击上一个下一个按钮,顺序会发生错乱 在new之前需要使用destroy销毁 ......
  • 微信小程序轮播图
    1.1效果1.2代码<viewclass="container"><swiperautoplayinterval="4000"circularindicator-dots><blockwx:for="{{itemList}}"wx:key="index"><swiper-item><viewclas......
  • JavaScript—轮播图
    概念轮播图(Carousel)是一种常见的网页设计元素,用于展示多张图片或信息。它通常由一个容器和一组水平排列的图片或内容组成。轮播图中的图片会按照一定的规律(例如自动轮播、点击切换或滑动切换等)进行切换,以便在有限的空间内展示多个内容。HTML元素网页元素<divclass="wrap">......
  • Qt编写网易云界面 (4) -----轮播图的实现
    今天主要是完成一下中间部分的第一页效果如图:ps:轮播图实在是不会,网上找了个大佬的先用着在说。链接。另外还加了换肤功能,当然只是简单的纯色皮肤,如图:UI设计:changecolorform.h#ifndefCHANGECOLORFORM_H#defineCHANGECOLORFORM_H#include<QWidget>namespaceUi{cl......
  • ios开发之 -- 自动轮播图创建
    这里是oc版本的,简单记录下:具体代码如下:1,准备#defineFRAME[[UIScreenmainScreen]bounds]#defineWIDTHFRAME.size.width#defineHEIGHTFRAME.size.height2,具体实现//scrollview的添加_bigScrollView=[[UIScrollViewalloc]initWithFrame:CGRectMake(0,20,WIDTH,H......
  • swift开发之 -- 自动轮播图(UIScrollView+UIPageControl+Timer)
    比较简单,原理就不说了,这里只做记录:代码如下:1,准备varpageControl:UIPageControl?varmyscrollView:UIScrollView?varmyTimer:Timer?varmycurrentPage:NSInteger?varcourses=[["name":"first","pic":"1.jpeg&qu......
  • 轮播图
    轮播图{w:bannerfield="title,image,url,typeid,status"limit="10"}<ul> {loop$data$v} <li><ahref="{$v[url]}"><imgsrc="{$v[image]}"alt="{$v[title]}"title="{$v[title]}">&......
  • wpf 自定义轮播图组件
      轮播图组件代码:[Localizability(LocalizationCategory.None,Readability=Readability.Unreadable)][TemplatePart(Name="Part_Grid",Type=typeof(Grid))][TemplatePart(Name="Part_OldContentControl",Type=typeof(ContentControl))][Template......
  • vue无缝循环轮播
    在网上看了几个无缝循环轮播的实现方法,使用方法都比较复杂,所以这里提供一种比较简单的实现方式gitee:https://gitee.com/philippines-kisses-snow/rotation结构和理论梳理理论轮播的原理就是通过translateY/translateX移动轮播容器+过渡达到轮播项上下左右轮播效果的,为了达......