当前位置: 首页 > 编程日记 > 正文

android首页图片轮播效果,Android_Android自动播放Banner图片轮播效果,先看一下效果图支持本地图 - phpStudy...

Android自动播放Banner图片轮播效果

先看一下效果图

支持本地图片以及网络图片or本地网络混合。

使用方式:

android:id="@+id/banner"

android:layout_width="match_parent"

android:layout_height="230dip">

核心代码:

int length = mList.size();

View view = LayoutInflater.from(mContext).inflate(R.layout.banner_view,this,true);

LinearLayout ll = (LinearLayout) view.findViewById(R.id.ll_points);

vp= (ViewPager) view.findViewById(R.id.vp);

ll.removeAllViews();

LinearLayout.LayoutParams ll_parmas = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);

ll_parmas.leftMargin=5;

ll_parmas.rightMargin=5;

for(int i=0;i

ImageView img = new ImageView(mContext);

img.setLayoutParams(ll_parmas);

if(i==0){

img.setImageResource(R.mipmap.dot_focus);

}else{

img.setImageResource(R.mipmap.dot_blur);

}

ll.addView(img);

mImgs.add(img);

final ImageView imgforview = new ImageView(mContext);

imgforview.setOnClickListener(this);

imgforview.setScaleType(ImageView.ScaleType.FIT_XY);

if(mList.get(i).getType()==0){//本地图片

imgforview.setImageResource(mList.get(i).getDrawableforint());

}else{//网络

Glide.with(mContext).load(mList.get(i).getDrawableforurl()).diskCacheStrategy(DiskCacheStrategy.ALL).into(imgforview);

// Glide.with(mContext).load(mList.get(i).getDrawableforurl()).listener(new RequestListener() {

// @Override

// public boolean onException(Exception e, String model, Target target, boolean isFirstResource) {

// Log.d("yu","Faile:"+e.toString());

// return false;

// }

//

// @Override

// public boolean onResourceReady(GlideDrawable resource, String model, Target target, boolean isFromMemoryCache, boolean isFirstResource) {

// imgforview.setImageDrawable(resource);

// return false;

// }

// }).into(imgforview);

// Log.d("yu","url: "+mList.get(i).getDrawableforurl());

}

mViews.add(imgforview);

}

vp.setAdapter(new MyAdapter());

vp.addOnPageChangeListener(onPageChange);

自动轮播利用的是handler的postdelay方法。

private Runnable task = new Runnable() {

@Override

public void run() {

if(isAuto){

currentItem = currentItem%(mViews.size());

// Log.d("yu","runalbe "+currentItem);

if(currentItem==0){

vp.setCurrentItem(currentItem,false);

}else{

vp.setCurrentItem(currentItem);

}

currentItem++;

mHandle.postDelayed(task,delaytime);

}else{

mHandle.postDelayed(task,delaytime);

}

}

};

利用isAuto判断是否正在自动轮播 如果为false 不自动切换item。isAuto赋值操作位于OnPageChangeListener的onPageScrollStateChanged方法中:

public void onPageScrollStateChanged(int state) {

switch (state){

case ViewPager.SCROLL_STATE_IDLE://用户什么都没有操作

isAuto=true;

currentItem = vp.getCurrentItem();

// Log.d("yu","IDLE"+currentItem);

// if(vp.getCurrentItem()==mViews.size()){

// vp.setCurrentItem(0,false);

// }

break;

case ViewPager.SCROLL_STATE_DRAGGING://正在滑动

isAuto =false;

break;

case ViewPager.SCROLL_STATE_SETTLING://滑动结束

isAuto=true;

break;

}

}

当状态为SCROLL_STATE_DRAGGING时 说明用户正在操作 ,看下源码中的解释:

/**

* Indicates that the pager is in an idle, settled state. The current page

* is fully in view and no animation is in progress.

*/

public static final int SCROLL_STATE_IDLE = 0;

/**

* Indicates that the pager is currently being dragged by the user.

*/

public static final int SCROLL_STATE_DRAGGING = 1;

/**

* Indicates that the pager is in the process of settling to a final position.

*/

public static final int SCROLL_STATE_SETTLING = 2;

大致意思呢就是 0代码没有任何操作。1页面正在被用户拖动。2代表成功切换至下一页面。

源码地址:https://github.com/yudehai0204/autoBanner

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持phpstudy。相关阅读:

Win10开发版本10100曝光 团队正准备重大公开预览版

PHP迭代器实现斐波纳契数列的函数

asp.net微信开发(高级群发文本)

MSSQL附加数据库拒绝访问提示5120错误的处理方法

Win10预览版怎么关闭系统消息提醒?

Swift教程之方法详解

C语言合并排序及实例代码

Win10怎么删除资源管理器中的OneDrive图标?

升级完Windows 7/8/8.1用户之后何时需要输入系统密钥?

ASP.NET―001:GridView绑定List、页面返回值具体实现

针对JavaScript中this指向的简单理解

Java中的双重检查(Double-Check)详解

Javascript基础教程之关键字和保留字汇总

C语言求幂计算的高效解法

相关文章:

mongodb 入门

在NOSQL的多个数据库版本中,mongodb相对比较成熟,把学mongodb笔记整理在这,方便以后回顾。这笔记预计分三部分: 一,基础操作,二、增删改查详细操作,三、高级应用。一、在linux在安装mongodb,在linux下安装m…

springboot 学习笔记(三)

(三)用jar包启动springboot项目 1、首先需要在pom文件中添加依赖,spring-boot-starter-parent包含有打包的默认配置,如果要修改的话要可以进行重新定义,具体内容参考https://docs.spring.io/spring-boot/docs/2.1.1.RE…

搜索:深搜/广搜 获取岛屿数量

题目描述: 用一个二维数组代表一张地图,这张地图由字符“0”与字符“1”组 成,其中“0”字符代表水域,“1”字符代表小岛土地,小岛“1”被 水“0”所包围,当小岛土地“1”在水平和垂直方向相连接时&#xf…

2.4.4.1、Django新建APP(acounts)

$django-admin.py startapp accounts 在oss/accounts修改forms.py(新建)和views.py如下: 注:绿字部分为注释 views.py ################################################################ #codingutf-8 from django.core.urlresolvers import reverse f…

vue html引入资源dev下404,webpack vue 项目打包生成的文件,资源文件报404问题的修复方法(总结篇)...

最近在使用webpack vue做个人娱乐项目时,发现npm run build后,css js img静态资源文件均找不到路径,报404错误。。。网上查找了一堆解决办法,总结如下一、首先修改config目录下的index.js文件将其中build的配置项assetsPublicPat…

解决.net webservice的WebClient或HttpWebRequest首次连接缓慢问题

【编程环境】Visual Studio 2010, NET4.0 【开发语言】C#, 理论上VB.NET等依赖.NET Framework框架的语言均受此影响 【问题描述】 使用HttpWebRequest抓取网页内容,但首次请求总是莫名奇妙的阻塞在Request.GetResponse();上,不过一旦这次请求成功,后续的操作就很快了…

2019-1-11

unique的使用&#xff1a; 1. unique是把相邻的重复元素放到最后面。所以在对无序数列使用之前&#xff0c;需要用sort先排序。 2.unique的返回值是不重复区的的最后一个元素加一的地址。 sort(V.begin(), V.end() ); vector<int>::iterator end_unique unique&#xff…

搜索:广搜 词语阶梯

问题描述以及解决过程如下导图 广搜实现如下 #include <iostream> #include <algorithm> #include <vector> #include <string> #include <queue> #include <set> #include <map>using namespace std;/*判断两个单词是否有连接状态…

float属性html,详解CSS样式中的float属性

详解CSS样式中的float属性。float是 css样式的定位属性。我们在印刷排版中&#xff0c;文本可以按照需要围绕图片。一般把这种方式称为“文本环绕”。在网页设计中&#xff0c;应用了CSS的float属性的页面元素就像在印刷布局里面的被文字包围的图片一样。浮动的元素仍然是网页流…

机房收费系统系列一:运行时错误‘-2147217843(80040e4d)’;用户‘sa’登陆失败...

做机房收费系统的时候&#xff0c;首先在SQL server数据库中添加好charge数据库&#xff08;在对象资源管理器中&#xff0c;右击数据库&#xff0c;点击附加&#xff0c;找到charge的mdf文件&#xff0c;点击确定&#xff09;&#xff0c;然后用ODBC配置好数据库&#xff0c;把…

JQuery新浪1630个表情插件

1.http://***/Detail.aspx?id131 2.http://***/Detail.aspx?id81转载于:https://www.cnblogs.com/zrp2013/archive/2013/05/17/3082961.html

linux open系统调用的O_DIRECT标记

前言 open系统调用中针对打开的文件描述符&#xff0c;可以增加一个O_DIRECT标记&#xff0c;该标记能够使得针对该文件描述符的写操作绕过操作系统page cache&#xff0c;直接进入通用块设备层&#xff0c;从而减少页缓存对IO效率的影响。 但是针对O_DIRECT标记有一个问题&a…

计算机专业每年都有国企招老吗,这十大专业在国企中最受欢迎,待遇高、前景好,有你的专业吗?...

古语说“三百六十行&#xff0c;行行出状元”这句话一点没错&#xff0c;但是当你报考传说中的“铁饭碗”、“金饭碗”的时候&#xff0c;你会发现&#xff0c;想入对行&#xff0c;首先你得选对专业&#xff0c;不管是对于报考还是以后的职业发展来说&#xff0c;选对专业和嫁…

实现一个基于 SharePoint 2013 的 Timecard 应用(下)

现在&#xff0c;基于 Timecard 数据来一点儿数据分析。 应用需求 对于 Timecard&#xff0c;分析下面 2 个方面&#xff1a; 对于单个项目&#xff0c;分析其中每个成员的工时占比&#xff0c;以此了解工作量分配&#xff0c;为组间人员调度提供参考。对于整个公司&#xff0c…

新书来了!《ActionScript 3.0游戏设计基础(第2版)》

已经开始预售&#xff1a;猛戳这里&#xff01;多谢支持&#xff01;文后附件为译者序。转载于:https://blog.51cto.com/58script/1202944

springcloud-spring cloud config统一配置中心

统一配置中心 为什么需要统一配置中心? 统一配置中心顾名思义,就是将配置统一管理,配置统一管理的好处是在日后大规模集群部署服务应用时相同的服务配置一致,日后再修改配置只需要统一修改全部同步,不需要一个一个服务手动维护 统一配置中心的架构图: 服务者消费者集群&#x…

a-awk外部变量传入,内部变量传出,同时过滤空格及其他字符

变量传递 外部变量传入 lsblk|awk -v A$A -v B$B {print A,B}lsblk | awk {print A,B} A$A B$B 内部变量传出 eval $(lsblk|awk {print "A$1"})eval $(lsblk|awk printf("A%s\n",$1)) 同时过滤空格及其他字符 df -Th|grep ceph- 2>/dev/null|awk -F…

UVa12096.The SetStack Computer

题目链接&#xff1a;http://uva.onlinejudge.org/index.php?optioncom_onlinejudge&Itemid8&pageshow_problem&problem3248 1391605812096The SetStack ComputerAcceptedC0.3022014-07-21 03:43:15The SetStack Computer Background from Wikipedia: \Set theory…

网络设置计算机,怎么重置电脑网络设置

现如今网络已经融入了我们的生活&#xff0c;我们对网络的要求也越来越过了&#xff0c;那么你知道怎么重置电脑网络设置吗?下面是学习啦小编整理的一些关于怎么重置电脑网络设置的相关资料&#xff0c;供你参考。重置电脑网络设置的方法开始→运行→输入&#xff1a;CMD 点击…

centos 学习日记 文件默认权限:umaks

使用方法&#xff1a; [rootkin /]# umask 0022 [rootkin /]# umask -S urwx,grx,orx上面显示的是本机上面文件默认的权限。 第二个好理解。 第一个要注意的是&#xff1a; umask的分值是指"该默认值需要减掉的权限" 第一个数字可以不管他 第二&#xff0c;三&…

linux 基础命令一

linux命令基础 hash&#xff1a;hash操做 shell搜寻到的外部命令的路径结果会缓存至kv(key-value)存储中history&#xff1a;查看历史 history命令:管理命令历史。登录shell时,会读取命令历史文件中记录下的命令:~/.bash_history&#xff0c;而且新执行的命令只会记录在缓存中:…

ceph pool 相关命令

文章目录Pool创建ec pool创建副本pool创建Pool参数创建根故障域及添加osd其他命令Tier相关Pool创建 ec pool创建 创建profile ceph osd erasure-code-profile set $profile_name k$k m$m crush-failure-domainhost crush-root$group_name 创建规则 ceph osd crush rule creat…

临平职高计算机专业高职考大学,临平职高高考再传捷报 本科连续四年蝉联杭州市第一...

又到一年放榜时&#xff0c;几家欢喜几家愁。然而&#xff0c;2018年的高考成绩出来后&#xff0c;可把临平市职业高级中学(以下简称“临平职高”)的师生们乐坏了。正所谓三年寒窗&#xff0c;开出芬芳&#xff1b;三年磨剑&#xff0c;努力未变&#xff1b;三年坚守&#xff0…

音频编辑大师 3.3 注冊名 注冊码

username&#xff1a;cae3_user000注冊码&#xff1a;beslbFVpFEhxvxA0F23xW7heAeWoWjuWhvBIMN0Je1o我试过了&#xff0c;绝对能够用。转载于:https://www.cnblogs.com/mfrbuaa/p/3858221.html

兰戈 —— Rango

2019独角兽企业重金招聘Python工程师标准>>> 一部西部卡通片&#xff0c;据说恶搞了《正午》这部著名的西部片&#xff0c;可惜我没有看过《正午》。非常喜欢这部片子里的音乐&#xff0c;恢宏大气。 剧情&#xff1a; 兰戈&#xff08;约翰尼德普 Johnny Depp 配…

C#/.Net判断是否为周末/节假日

判断节假日请求的Api&#xff1a;http://tool.bitefu.net/jiari/ /// <summary>/// 判断是不是周末/节假日/// </summary>/// <param name"date">日期</param>/// <returns>周末和节假日返回true&#xff0c;工作日返回false</retu…

ceph 部署单机集群

文章目录ceph-deploy部署集群ceph-deploy 部署单机ceph-deploy 创建osdceph osd创建资源池ceph创建rbd块设备ceph创建fs文件系统本文档主要参考ceph官方命令进行部署&#xff0c;使用的时侯ceph-deploy原生命令方式进行集群各个组件的创建&#xff0c;删除&#xff0c;后续会增…

hdu-4302-Holedox Eating-线段树-单点更新,有策略的单点查询

一開始实在是不知道怎么做&#xff0c;后来经过指导&#xff0c;猛然发现&#xff0c;仅仅须要记录某个区间内是否有值就可以。 flag[i]:代表i区间内&#xff0c;共同拥有的蛋糕数量。 放置蛋糕的时候非常好操作&#xff0c;单点更新。 ip&#xff1a;老鼠当前的位置 寻找吃哪一…

华南理工计算机基础知识题,华南理工_计算机应用基础_随堂练习答案(2017年)

华南理工_计算机应用基础_随堂练习答案(2017年) (18页)本资源提供全文预览&#xff0c;点击全文预览即可全文预览,如果喜欢文档就下载吧&#xff0c;查找使用更方便哦&#xff01;19.9 积分&#xfeff;. . . .华南理工-计算机应用基础-随堂练习答案(2017年)第一章 计算机基础知…

python 添加进度条

安装&#xff1a; pip install tqdm使用&#xff1a; from tqdm import tqdm import time for i in tqdm(rang(10)):time.sleep(0.1)转载于:https://www.cnblogs.com/royfans/p/10271496.html