Android 定时器实现图片的变换
发布时间 - 2026-01-11 02:45:48 点击率:次Android 定时器实现图片的变换

在Android中,要让每秒进行一次ui更新,就需要利用到定时器和handler,message的结合,如果不使用handler就不能达到更新ui的效果,我的理解是handler中存在一个队列问题,可以保证不产生阻塞。
代码如下:
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.widget.ImageView;
import android.widget.LinearLayout;
public class MainActivity extends Activity
{
private LinearLayout linearlayout;
private ImageView main_imageview;
private int i = 0;
Timer timer = new Timer();
private Handler handler = new Handler()
{
@Override
public void handleMessage(Message msg)
{
Log.e("@@@", i + "");
//index=msg.what;
if (i > 6)
{
i = 0;
}
else
{
switch (i)
{
case 1:
main_imageview.setImageResource(R.drawable.loader_frame_1);
break;
case 2:
main_imageview.setImageResource(R.drawable.loader_frame_2);
break;
case 3:
main_imageview.setImageResource(R.drawable.loader_frame_3);
break;
case 4:
main_imageview.setImageResource(R.drawable.loader_frame_4);
break;
case 5:
main_imageview.setImageResource(R.drawable.loader_frame_5);
break;
case 6:
main_imageview.setImageResource(R.drawable.loader_frame_6);
break;
default:
break;
}
linearlayout.invalidate();
}
super.handleMessage(msg);
}
};
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
initView();
}
public void initView()
{
linearlayout = (LinearLayout) findViewById(R.id.background_main);
main_imageview = (ImageView) findViewById(R.id.main_imageview);
timer.scheduleAtFixedRate(new TimerTask()
{
@Override
public void run()
{
// TODO Auto-generated method stub
i++;
Message mesasge = new Message();
mesasge.what = i;
handler.sendMessage(mesasge);
}
}, 0, 500);
}
@Override
protected void onDestroy()
{
// TODO Auto-generated method stub
timer.cancel();
super.onDestroy();
}
}
在这段代码中有两点需要注意:
第一:在更新完图片后,需要刷新整个布局,linearlayout.invalidate();
第二:在用完定时器timer后,要在Activity被干掉的同时销毁定时器timer。
以上就是Android 定时器的应用,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# Android
# 定时器
# 定时器的应用实例
# Android使用Handler实现定时器与倒计时器功能
# Android定时器和倒计时实现淘宝秒杀功能
# 详解Android实现定时器的几种方法
# Android定时器Timer的停止和重启实现代码
# Android实现定时器的五种方法实例详解
# Android 实现定时器的四种方式总结及实现实例
# Android中使用定时器的三种方法
# Android定时器实现的几种方式整理及removeCallbacks失效问题解决
# 基于Android中实现定时器的3种解决方法
# Android定时器实现定时执行、重复执行、定时重复执行、定次数执行的多种方式
# 就不
# 如有
# 中有
# 要在
# 这段
# 希望能
# 要让
# 谢谢大家
# 能达到
# 用完
# 需要注意
# 两点
# 疑问请
# 被干
# linearlayout
# extends
# Activity
# private
# ImageView
# widget
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
高防服务器:AI智能防御DDoS攻击与数据安全保障
如何在 Go 中优雅地映射具有动态字段的 JSON 对象到结构体
怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?
javascript中对象的定义、使用以及对象和原型链操作小结
Bootstrap整体框架之JavaScript插件架构
PythonWeb开发入门教程_Flask快速构建Web应用
Laravel如何创建自定义Facades?(详细步骤)
Laravel Admin后台管理框架推荐_Laravel快速开发后台工具
使用C语言编写圣诞表白程序
免费网站制作appp,免费制作app哪个平台好?
Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】
原生JS获取元素集合的子元素宽度实例
如何在景安服务器上快速搭建个人网站?
宙斯浏览器视频悬浮窗怎么开启 边看视频边操作其他应用教程
JS碰撞运动实现方法详解
如何快速辨别茅台真假?关键步骤解析
,网页ppt怎么弄成自己的ppt?
如何基于PHP生成高效IDC网络公司建站源码?
Laravel如何实现一对一模型关联?(Eloquent示例)
如何利用DOS批处理实现定时关机操作详解
Win11怎么关闭透明效果_Windows11辅助功能视觉效果设置
Laravel如何使用Passport实现OAuth2?(完整配置步骤)
电视网站制作tvbox接口,云海电视怎样自定义添加电视源?
如何快速生成专业多端适配建站电话?
晋江文学城电脑版官网 晋江文学城网页版直接进入
如何自定义建站之星模板颜色并下载新样式?
如何用低价快速搭建高质量网站?
Laravel如何配置任务调度?(Cron Job示例)
今日头条微视频如何找选题 今日头条微视频找选题技巧【指南】
zabbix利用python脚本发送报警邮件的方法
Laravel模型关联查询教程_Laravel Eloquent一对多关联写法
如何在建站之星网店版论坛获取技术支持?
如何在云主机上快速搭建多站点网站?
如何在橙子建站上传落地页?操作指南详解
Laravel怎么配置.env环境变量_Laravel生产环境敏感数据保护与读取【方法】
bing浏览器学术搜索入口_bing学术文献检索地址
使用PHP下载CSS文件中的所有图片【几行代码即可实现】
香港服务器建站指南:免备案优势与SEO优化技巧全解析
实例解析angularjs的filter过滤器
Linux后台任务运行方法_nohup与&使用技巧【技巧】
Laravel如何实现URL美化Slug功能_Laravel使用eloquent-sluggable生成别名【方法】
微信小程序 HTTPS报错整理常见问题及解决方案
原生JS实现图片轮播切换效果
如何用西部建站助手快速创建专业网站?
如何在不使用负向后查找的情况下匹配特定条件前的换行符
HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】
Laravel如何实现文件上传和存储?(本地与S3配置)
百度输入法ai面板怎么关 百度输入法ai面板隐藏技巧
如何用狗爹虚拟主机快速搭建网站?
JavaScript常见的五种数组去重的方式

