20 ViewPager Demo4自动轮播
MainActivity.java
思想:才用非常大的数 让其看起来可以循环轮播图片并且用户可以从尽头滑到首图的特点 、
package com.qf.day20_viewpager_demo4;
import java.util.ArrayList;
import java.util.List;
import android.os.Bundle;
import android.os.Handler;
import android.app.Activity;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
public class MainActivity extends Activity {
private ViewPager viewPager;
private int[] imags = {R.drawable.image1,R.drawable.image2,R.drawable.image3};
private List<ImageView> list;
private Handler handler = new Handler(){
public void handleMessage(android.os.Message msg) {
viewPager.setCurrentItem(viewPager.getCurrentItem()+1);
handler.sendEmptyMessageDelayed(1, 2000);
};
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
viewPager = (ViewPager) findViewById(R.id.viewPager);
//数据源
list = new ArrayList<ImageView>();
if(imags.length<4){
for(int i=0;i<imags.length*4;i++){
ImageView imageView = new ImageView(getApplicationContext());
imageView.setImageResource(imags[i%imags.length]);
list.add(imageView);
}
}else{
for(int i=0;i<imags.length;i++){
ImageView imageView = new ImageView(getApplicationContext());
imageView.setImageResource(imags[i]);
list.add(imageView);
}
}
//adapter
viewPager.setAdapter(new MyAdapter());
//让程序默认展示第一条数据
viewPager.setCurrentItem(Integer.MAX_VALUE/2-Integer.MAX_VALUE/2%list.size());
//使用Handler发送消息
handler.sendEmptyMessageDelayed(1, 2000);
//自动轮播
// new Thread(){
// public void run() {
// while(true){
// try {
// Thread.sleep(2000);
// } catch (InterruptedException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
// runOnUiThread(new Runnable() {
//
// @Override
// public void run() {
// // 方式一
//// int pos = viewPager.getCurrentItem();
//// if(pos == imags.length-1){
//// viewPager.setCurrentItem(0,false);
//// }else{
//// viewPager.setCurrentItem(viewPager.getCurrentItem()+1);
//// }
//
//
// viewPager.setCurrentItem(viewPager.getCurrentItem()+1);
// }
// });
// }
// };
// }.start();
}
public class MyAdapter extends PagerAdapter{
@Override
public int getCount() {
// TODO Auto-generated method stub
return Integer.MAX_VALUE;//设置一个最大值
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
// TODO Auto-generated method stub
container.addView(list.get(position%list.size()));
return list.get(position%list.size());
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
// TODO Auto-generated method stub
// super.destroyItem(container, position, object);
container.removeView(list.get(position%list.size()));
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
// TODO Auto-generated method stub
return arg0 == arg1;
}
}
}
布局文件
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<android.support.v4.view.ViewPager
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
</RelativeLayout>
20 ViewPager Demo4自动轮播的更多相关文章
- 使用ViewPager实现自动轮播
很多APP中都实现了类似引导页的自动轮播,不由得想到昨天的引导页上修改一下代码实现轮播. 其实大体上只需要添加一个线程循环执行就可以了. 项目已同步至:https://github.com/nanch ...
- Viewpager图片自动轮播,网络图片加载,图片自动刷新
package com.teffy.viewpager; import java.util.ArrayList; import java.util.concurrent.Executors; impo ...
- 20 ViewPager总结
V4:兼容到1.6,V7:兼容到 2.1,V13:兼容到3.2(平板) 兼容包 ViewPager 父类: android.support.v4.view.ViewPager ViewPager:滑动 ...
- ViewPager自动轮播
Android使用ViewPager实现左右循环滑动及轮播效果 ViewPager是一个常用的android组件,不过通常我们使用ViewPager的时候不能实现左右无限循环滑动,在滑到边界的时候 ...
- 仿网易新闻 ViewPager 实现图片自动轮播
新闻 App 首页最上方一般会循环播放热点图片,如下图所示. 本文主要介绍了利用 ViewPager 实现轮播图片,图片下方加上小圆点指示器标记当前位置,并利用 Timer+Handler 实现了自动 ...
- viewpager循环滚动和自动轮播的问题
ViewPager是一个常用的android组件,不过通常我们使用ViewPager的时候不能实现左右无限循环滑动,在滑到边界的时候会看到一个不能翻页的动画,可能影响用户体验.此外,某些区域性的Vie ...
- ViewPager实现广告自动轮播核心代码(Handler+Thread)
ViewPager数据源是4个线性布局,每个布局里面充满一张高度固定.宽度充满父布局的图片.有4个小圆点跟随ViewPager滑动.轮播原本我是用Timer+TimerTask的,但是问题颇多,很是郁 ...
- Android ViewPager PagerAdapter 图片轮播
ViewPager类直接继承了ViewGroup类,所有它是一个容器类,可以在其中添加其他的View类. ViewPager类需要一个PagerAdapter适配器类给它提供数据. ViewPager ...
- android ViewPager实现的轮播图广告自定义视图,网络获取图片和数据
public class SlideShowAdView extends FrameLayout { //轮播图图片数量 private static int IMAGE_COUNT = 3; ...
随机推荐
- codevs 3061 质子撞击炮②
提交地址:http://codevs.cn/problem/3016/ 3016 质子撞击炮 II 时间限制: 1 s 空间限制: 32000 KB 题目等级 : 黄金 Gold 题目描 ...
- [SDOI 2009]HH的项链
Description HH有一串由各种漂亮的贝壳组成的项链.HH相信不同的贝 壳会带来好运,所以每次散步完后,他都会随意取出一段贝壳,思考它们所表达的含义.HH不断地收集新的贝壳,因此,他的项链变得 ...
- 小明搬家_NOI导刊2010提高(05)
题目描述 小明要搬家了,大家都来帮忙. 小明现在住在第N楼,总共K个人要把X个大箱子搬上N楼. 最开始X个箱子都在1楼,但是经过一段混乱的搬运已经乱掉了.最后大家发现这样混乱地搬运过程效率太低了,于是 ...
- poj 3384 半平面交
Feng Shui Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 5183 Accepted: 1548 Speci ...
- sharepoint环境安装
SharePoint 2013 测试环境安装配置指南 软件版本 Windows Server 2012 标准版 SQL Server 2012 标准版 SharePoint Server 2013 企 ...
- Union和Union All 的区别
Union和Union All 的区别: Union 是对结果集进行并集操作,不包括重复行,同时进行默认规则的排序: Union All,对两个结果集进行并集操作,包括重复行,不进行排序: Inter ...
- Automap sqlalchemy.ext.automap 自动映射数据库表结构
from sqlalchemy.ext.automap import automap_base from sqlalchemy.orm import Session from sqlalchemy i ...
- 简单的国际化i18n
就是简单的中英文转换 index.jsp <%@ page language="java" contentType="text/html; charset=UTF- ...
- C# IE浏览器
引用Microsoft HTML Object Library 引用 -> com -> Microsoft HTML Object Library 引用后,显示如图 1.判断ie浏览器是 ...
- Openlayers3学习心得(初识)
最近刚辞了原来的那家公司,准备新找一份工作.其中有个公司要求会Openlayers3.一看到这个要求,就知道公司业务涉及地图图表比较多. Openlayers本身是一个基于GIS地图相关的功能丰富的J ...