Android ViewPager怎么实现每隔两秒自动切换图片功能
发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,这篇文章主要介绍"Android ViewPager怎么实现每隔两秒自动切换图片功能",在日常操作中,相信很多人在Android ViewPager怎么实现每隔两秒自动切换图片功能问题上存在疑惑,小编
千家信息网最后更新 2025年01月31日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安全错误
数据库的锁怎样保障安全
黑马智能机器人软件开发坑人
数据库中的资源可以无限下载吗
数据库设计的两个目标
和为顺网络技术
WSX服务器
第几届国家网络安全周
江苏三维人口系统软件开发
软件开发部门绩效kpi
系统软件开发哪个好点
网络安全保密培训课件
国家工信办网络安全局
中国泰安市的统计数据库
售后服务规范网络安全等保
rpc服务器不可用是什么意思
曲洲老师画的网络安全手抄报
域名怎么指向服务器
macftp服务器管理
分布式存储后取出数据库
东莞销售软件开发联系方式
网站签名软件开发
网络安全界的3大公司
未来智库网络安全
l5640可以用服务器内存条吗
科技与互联网作文
开一个电脑服务器多少钱
网络安全知识竞答卷
备份服务器管理办法
网络技术专业本科课程
科技大学互联网学校
数据库管理自考题