Android ViewPager怎么实现每隔两秒自动切换图片功能
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,这篇文章主要介绍"Android ViewPager怎么实现每隔两秒自动切换图片功能",在日常操作中,相信很多人在Android ViewPager怎么实现每隔两秒自动切换图片功能问题上存在疑惑,小编
千家信息网最后更新 2025年11月07日Android ViewPager怎么实现每隔两秒自动切换图片功能
这篇文章主要介绍"Android ViewPager怎么实现每隔两秒自动切换图片功能",在日常操作中,相信很多人在Android ViewPager怎么实现每隔两秒自动切换图片功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Android ViewPager怎么实现每隔两秒自动切换图片功能"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
布局代码:
正常的shape图形dot_normal.xml:
获取焦点的shape图形 dot_focused.xml
具体实现代码:
import java.util.ArrayList;import java.util.concurrent.Executors;import java.util.concurrent.ScheduledExecutorService;import java.util.concurrent.TimeUnit;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.support.v4.view.PagerAdapter;import android.support.v4.view.ViewPager;import android.support.v4.view.ViewPager.OnPageChangeListener;import android.view.View;import android.view.ViewGroup;import android.widget.ImageView;import android.widget.TextView;public class MainActivity extends Activity { private int imageIds[]; private String[] titles; private ArrayList images; private ArrayList dots; private TextView title; private ViewPager mViewPager; private ViewPagerAdapter adapter; private int oldPosition = 0;//记录上一次点的位置 private int currentItem; //当前页面 private ScheduledExecutorService scheduledExecutorService; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //图片ID imageIds = new int[]{ R.drawable.a, R.drawable.b, R.drawable.c, R.drawable.d, R.drawable.e }; //图片标题 titles = new String[]{ "巩俐不低俗,我就不能低俗", "扑树又回来啦!再唱经典老歌引万人大合唱", "揭秘北京电影如何升级", "乐视网TV版大派送", "热血屌丝的反杀" }; //显示的图片 images = new ArrayList(); for(int i =0; i < imageIds.length; i++){ ImageView imageView = new ImageView(this); imageView.setBackgroundResource(imageIds[i]); images.add(imageView); } //显示的点 dots = new ArrayList(); dots.add(findViewById(R.id.dot_0)); dots.add(findViewById(R.id.dot_1)); dots.add(findViewById(R.id.dot_2)); dots.add(findViewById(R.id.dot_3)); dots.add(findViewById(R.id.dot_4)); title = (TextView) findViewById(R.id.title); title.setText(titles[0]); mViewPager = (ViewPager) findViewById(R.id.vp); adapter = new ViewPagerAdapter(); mViewPager.setAdapter(adapter); mViewPager.setOnPageChangeListener(new OnPageChangeListener() { @Override public void onPageSelected(int position) { // TODO Auto-generated method stub title.setText(titles[position]); dots.get(oldPosition).setBackgroundResource(R.drawable.dot_normal); dots.get(position).setBackgroundResource(R.drawable.dot_focused); oldPosition = position; currentItem = position; } @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 } }); } private 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 void destroyItem(ViewGroup view, int position, Object object) { // TODO Auto-generated method stub// super.destroyItem(container, position, object);// view.removeViewAt(position); view.removeView(images.get(position)); } @Override public Object instantiateItem(ViewGroup view, int position) { // TODO Auto-generated method stub view.addView(images.get(position)); return images.get(position); } } @Override protected void onStart() { // TODO Auto-generated method stub super.onStart(); scheduledExecutorService = Executors.newSingleThreadScheduledExecutor(); //每隔2秒钟切换一张图片 scheduledExecutorService.scheduleWithFixedDelay(new ViewPagerTask(), 2, 2, TimeUnit.SECONDS); } //切换图片 private class ViewPagerTask implements Runnable { @Override public void run() { // TODO Auto-generated method stub currentItem = (currentItem +1) % imageIds.length; //更新界面// handler.sendEmptyMessage(0); handler.obtainMessage().sendToTarget(); } } private Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { // TODO Auto-generated method stub //设置当前页面 mViewPager.setCurrentItem(currentItem); } }; @Override protected void onStop() { // TODO Auto-generated method stub super.onStop(); }} 到此,关于"Android ViewPager怎么实现每隔两秒自动切换图片功能"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
图片
切换
功能
学习
低俗
代码
图形
更多
页面
帮助
实用
接下来
位置
布局
文章
方法
标题
热血
焦点
理论
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
企业服务器管理器怎么打开
零纪元服务器关闭
上海现代网络技术标准
我的世界生存服务器网易推荐
ea 11创建数据库
车道线检测 数据库
数据库流水线指令
命令窗口启动数据库
免流大宽带服务器
苹果手机游戏服务器连接超时
数据库视频推荐
郑州工业大学网络安全专业
蓝讯软件开发
计算机二次登录服务器
君子签是网络技术吗
为什么服务器维护时不能登录
怎么加盟小米云服务器
数据库安全评估扫描工具
华为中国运营商网络技术部
苏州创新管理软件开发
网络安全手抄文字内容
腾讯视频网络服务器是多少
软件开发 kpi
管理后台服务器好用吗
计算机网络技术是黑客
中德网络技术有限公司
保证网络安全的核心战略
软件开发研究程序吗
微软 软件开发过程
电脑软件开发培训机构