xml文件 textview 用于显示图片的标题 viewpager 用于实现翻页效果

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" > <LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center" > <TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#123456"
android:textIsSelectable="true"
android:textSize="18sp" />
</LinearLayout> <android.support.v4.view.ViewPager
android:id="@+id/vp"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
</android.support.v4.view.ViewPager> </LinearLayout>

代码块

 package com.xiang;

 import java.util.ArrayList;

 import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit; 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.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.Menu;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView; public class AutoScrollActivity extends Activity {
private ViewPager vp;
private int imagsID[]={R.drawable.a,R.drawable.b,R.drawable.c,R.drawable.d};
private String titles[]={"图片一","图片二","图片三","图片四"};
private ArrayList<ImageView> images;
private TextView title;
private ViewPagerAdapter adapter;
private int currentPosition=0;//当前页面位置
private ScheduledExecutorService executor;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_auto_scroll);
init();
} private void init() {
images=new ArrayList<ImageView>();
for(int i=0;i<imagsID.length;i++)
{
ImageView imgview=new ImageView(this);
imgview.setBackgroundResource(imagsID[i]);
images.add(imgview);
}
title=(TextView)findViewById(R.id.title);
title.setText(titles[0]);//默认显示第一张图片
vp=(ViewPager)findViewById(R.id.vp);
adapter=new ViewPagerAdapter();
vp.setAdapter(adapter);
vp.setOnPageChangeListener(listener);
}
OnPageChangeListener listener=new OnPageChangeListener() { @Override
public void onPageSelected(int arg0) {
// TODO Auto-generated method stub
title.setText(titles[arg0]);
currentPosition=arg0;
} @Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
// TODO Auto-generated method stub } @Override
public void onPageScrollStateChanged(int arg0) {
// TODO Auto-generated method stub }
};
class ViewPagerAdapter extends PagerAdapter
{ @Override
public int getCount() {
// TODO Auto-generated method stub
return images.size();
} @Override
public boolean isViewFromObject(View arg0, Object arg1) {
// TODO Auto-generated method stub
return arg0==arg1;//判断两次图片是否一样
}
@Override
public Object instantiateItem(View container, int position) {
// TODO Auto-generated method stub
ViewPager vp=(ViewPager) container;
vp.addView(images.get(position));
return images.get(position);
}
@Override
public void destroyItem(View container, int position, Object object) {
// TODO Auto-generated method stub
ViewPager vp=(ViewPager) container;
vp.removeView(images.get(position)); } }
@Override
protected void onStart() {
// TODO Auto-generated method stub
/*
* 第一个参数:要自动执行的方法(任务)
* 第二个参数:延迟几秒启动
* 第三个参数:之后每个几秒 执行第一个参数的方法
* 第四个参数:时间单位 时分秒
*/
super.onStart();
executor=Executors.newSingleThreadScheduledExecutor();
executor.scheduleAtFixedRate(new ViewPagerTask(), 2, 2, TimeUnit.SECONDS); }
class ViewPagerTask implements Runnable
{ @Override
public void run() {
// TODO Auto-generated method stub
currentPosition=(currentPosition+1)%images.size();
handler.obtainMessage().sendToTarget();//获取当前消息 发送给handler
} }
private Handler handler=new Handler()
{
public void handleMessage(android.os.Message msg) { vp.setCurrentItem(currentPosition);
};
};
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.auto_scroll, menu);
return true;
} }

实现效果:图片每隔两秒自动翻页,同时更改图片的标题,到最后一面又返回到第一页显示。2013-10-17

ViewPager实现自动翻页功能 --转载出处找不到了,根据自己的理解写个随笔方便以后的记忆以及代码的共享,感谢给我启发的那位高手--第一次写博客哈的更多相关文章

  1. pyspider示例代码五:实现自动翻页功能

    实现自动翻页功能 示例代码一 #!/usr/bin/env python # -*- encoding: utf- -*- # Created on -- :: # Project: v2ex fro ...

  2. Beta版本——第一次冲刺博客

    我说的都队 031402304 陈燊 031402342 许玲玲 031402337 胡心颖 03140241 王婷婷 031402203 陈齐民 031402209 黄伟炜 031402233 郑扬 ...

  3. 10款无限滚动自动翻页jquery插件

    2012年3月29日 无限滚动自动翻页可以说是web2.0时代的一项堪称伟大的技术,它让我们在浏览页面的时候只需要把滚动条拉到网页底部就能自动显示下一页的 结果,改变了一直以来只能通过点击下一页来翻页 ...

  4. jsp实现上一页下一页翻页功能

    前段时间一直忙于期末考试和找实习,好久没写博客了. 这段时间做了个小项目,包含了翻页和富文本编辑器Ueditor的两个知识点,Ueditor玩的还不是很深,打算玩深后再写篇博客. 要实现翻页功能,只需 ...

  5. ViewPager实现滑动翻页效果

    实现ViewPager的滑动翻页效果可以使用ViewPager的setPageTransformer方法,如下: import android.content.Context; import andr ...

  6. Atitit 翻页功能的解决方案与版本历史 v4 r49

    Atitit 翻页功能的解决方案与版本历史 v4 r49 1. 版本历史与分支版本,项目版本记录1 1.1. 主干版本历史1 1.2. 分支版本  项目版本记录.1 2. Easyui 的翻页组件2 ...

  7. Atitit.pagging  翻页功能解决方案专题 与 目录大纲 v3 r44.docx

    Atitit.pagging  翻页功能解决方案专题 与 目录大纲 v3 r44.docx 1.1. 翻页的重要意义1 1.2. Dep废弃文档   paip.js翻页分页pageing组件.txt1 ...

  8. jsp实现翻页功能

    jsp实现翻页功能 要实现翻页功能,只需要设置一个pageIndex即可,然后每次加载页面时通过pageIndex去加载数据就行. 那么我们可以设置一个隐藏的input框,用于传递pageIndex给 ...

  9. WPF 把图片分割成两份自动翻页 WpfFlipPageControl:CtrlBook 书控件

    原文:WPF 把图片分割成两份自动翻页 WpfFlipPageControl:CtrlBook 书控件 版权声明:本文为博主原创文章,需要转载尽管转载. https://blog.csdn.net/z ...

随机推荐

  1. Oracle 表连接

    Oracle 表之间的连接分为三种: 1. 内连接(自然连接) 2. 外连接 (1)左外连接 (左边的表不加限制)      (2)右外连接(右边的表不加限制)      (3)全外连接(左右两表都不 ...

  2. Android Studio安装和配置(个人研究,有错请指导)

    安装Android Studio的原因:公司有app开发者,然而公司没有测试,只好互相测试,本人并没有接触过app开发,纯小白: 自己试着安装了一下Android Studio来这里记录并分享遇到的问 ...

  3. 关于UIView的AutoresizingMask属性的研究

    在 UIView 中有一个autoresizingMask的属性,它对应的是一个枚举的值(如下),属性的意思就是自动调整子控件与父控件中间的位置,宽高. 1 2 3 4 5 6 7 8 9 enum  ...

  4. mysql 5.7 忘记root密码解决方法

    1.修改配置文件 vim /etc/my.cnf 在[mysqld]节点添加 skip-grant-tables 2.重启mysql 3.用空密码进入 mysql -uroot 执行 update m ...

  5. DOM加载顺序

    最近一直在困扰dom的加载顺序问题,经常会遇到以为绑定好的事件不响应等情况,一头雾水,直到请教了周围的同事,才发现了解dom的加载顺序是多么的重要. 关于这个问题,其实网上已经有一些介绍,但是我觉得并 ...

  6. Nodejs express中创建ejs项目,解决express下默认创建jade,无法创建ejs问题

    最近在看<Node.js开发指南>,看到使用nodejs进行web开发的时候,准备创建ejs项目遇到问题了, 书上命令为: express -t ejs microblog 可是执行后,仍 ...

  7. 批量转换编码 (gbk -> utf8)

    使用 Notepad++ 批量的转换文件编码:Mass convert a project to UTF-8 using Notepad++ 步骤如下: 1.一般 Noptepad++ 安装完后已经自 ...

  8. java 复制字串算法

    public class Copy { public static void copy(char[] s, char[] t){ int i=0; for(i=0; i<s.length; i+ ...

  9. Amazon评论数据的预处理代码(Positive & Negative)

    Amazon评论数据的预处理代码,用于情感分析,代码改自 https://github.com/PaddlePaddle/Paddle/tree/develop/demo/quick_start/da ...

  10. [原创]导出CSV文件,特殊字符处理。

    CSV文件格式 1.CSV文件默认以英文逗号(,)做为列分隔符,换行符(\n)作为行分隔符.2.CSV默认认为由""括起来的内容是一个栏位,这时不管栏位内容里有除"之外字 ...