Android ViewPager怎么实现每隔两秒自动切换图片功能
发表于:2024-11-23 作者:千家信息网编辑
千家信息网最后更新 2024年11月23日,这篇文章主要介绍"Android ViewPager怎么实现每隔两秒自动切换图片功能",在日常操作中,相信很多人在Android ViewPager怎么实现每隔两秒自动切换图片功能问题上存在疑惑,小编
千家信息网最后更新 2024年11月23日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 ArrayListimages; 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安全错误
数据库的锁怎样保障安全
六点网络安全知识
于网络安全的特点
五精管理下的信息网络安全
匹配navicat的数据库
windows怎么操作数据库
戴尔720服务器内存条在哪
河南浩瀚星云网络技术有限公司招聘
网络安全班会主题设计
重启服务器端口不能用
小区监控服务器维修地址
闵行区信息化数据库服务电话
我的世界国际版服务器咋创建
拉萨市软件开发公司
c语言数据库添加数据
中国媒介代理商数据库
珠海服务器自动生产线
原神还分服务器么
单机游戏数据库设计
国家数据库管理工程师
软件开发状态汇报
腾讯 网络安全生态报告
aosd软件开发
战地五私人服务器管理员
pyqt5 连接数据库
深圳制造业软件开发
我适合学软件开发吗测试
go 数据库加锁
2g2核服务器能挂我的世界吗
上海吉屋网络技术有限公司
湖南京众互联网科技有限公司