• android中广告轮播图总结


    功能点:无限轮播、指示点跟随、点击响应。实现思路:

    1、指示点跟随,指示点通过代码动态添加,数量由图片数量决定。

         在viewpager的页面改变监听中,设置点的状态选择器enable,当前页时,setEnable(true),非当前页设置为false。由于图片是从网络获取,数量不定,所以此处不能使用switch写死,需要设置变量记录当前和前一个。代码如下:

               llAddPoint为添加指示点的线性布局

               prePosition为前一个位置,初始化时设为0,newPosition为当前位置 

               int newPosition =position%imageViews.size();//使用最大值来进行无限轮播,所以需要取模。
               llAddPoint.getChildAt(newPosition).setEnabled(true);
               llAddPoint.getChildAt(prePosition).setEnabled(false);
               prePosition=newPosition;

    2、在activity的ondestroy方法中关闭轮播图

    3、点击响应在viewpager的适配器中instantiateItem方法里设置,因为图片为网络获取,所以不能以设置id的方式设置点击事件代码:

            @Override
    public Object instantiateItem(ViewGroup container, final int position) {
           ImageView iv = imageViews.get(position % imageViews.size());
           container.addView(iv);
            // 在这个方法里面设置图片的点击事件
         iv.setOnClickListener(new View.OnClickListener() {
             @Override
            public void onClick(View v) {
            // 处理跳转逻辑
              Toast.makeText(carouselActivity.this,"被点了"+position%imageViews.size(),Toast.LENGTH_SHORT).show();
             }
            });
          return iv;
    }

     4、指示点使用shape画出  下面是大小5dp  ,实心的灰色圆点。

    <shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval"
    >
    <solid android:color="@android:color/darker_gray"/>
    <size android:height="5dp" android:width="5dp"/>
    </shape>
  • 相关阅读:
    dede list调用 内容模型 附件
    dedecms list标签调用附加表字段--绝对成功
    织梦系统站点首页、列表、文章页等页面点击数调用方法
    apache include 文件包含引用的方法 报错 [an error occurred while processing this directive]
    windows 2008 中IIS7.0以上如何设置404错误页面
    织梦Fatal error: Call to a member function GetInnerText()
    dedecms清空栏目后,新建ID不从1开始的解决方法
    js禁止
    AngularJs表单验证
    submile 安装,汉化,插件
  • 原文地址:https://www.cnblogs.com/epmouse/p/5345916.html
Copyright © 2020-2023  润新知