- 浏览: 576292 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
hxlniada:
[color=darkred][/color][size=sm ...
利用Handler来更新android的UI -
jack_ye:
...
检测Android中触摸屏手势的动作与坐标 -
z278013421:
Android Services使用示例 -
东方vs不败:
写的不错,挺好的
利用Handler来更新android的UI -
liangxping:
就是双缓存机制而已。
Android中SurfaceView的使用示例
文字程序很简单,一个View,一个Activity,利用handler和postInvalidate()更新UI。
程序效果是一个蓝色的正方形向右移出屏幕。
package com.ray.test; import android.app.Activity; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.os.Bundle; import android.os.Handler; import android.view.View; public class TestHandler extends Activity { private MyView myView; private Handler mHandler; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); myView = new MyView(this); mHandler = new Handler(); mHandler.post(update); setContentView(myView); } private Runnable update = new Runnable() { public void run() { myView.update(); mHandler.postDelayed(update, 5); } }; class MyView extends View{ private float x = 0f; public MyView(Context context) { super(context); } public void update(){ postInvalidate(); } protected void onDraw(Canvas canvas) { super.onDraw(canvas); x+=1; Paint mPaint = new Paint(); mPaint.setColor(Color.BLUE); canvas.drawRect(x, 40, x+40, 80, mPaint); } } }
之前还写过另外一篇关于Handler更新UI的文章:
http://rayleung.iteye.com/blog/411860
- TestHandler.tar.gz (17.3 KB)
- 下载次数: 371
评论
2 楼
raymondlueng
2009-08-04
非常感谢您指出我理解上的错误,谢谢!我会继续努力的!
1 楼
daytodayme
2009-08-04
你的两篇文章对于invalidate()和postInvalidate()认识有些问题
http://www.iteye.com/topic/435147
http://rayleung.iteye.com/blog/411860
调用Handler.post(Runnable r)方法,Runnable运行在UI所在线程,所以可以直接调用View.invalidate()
在新线程里更新UI,可以直接postInvalidate()
http://www.iteye.com/topic/435147
http://rayleung.iteye.com/blog/411860
调用Handler.post(Runnable r)方法,Runnable运行在UI所在线程,所以可以直接调用View.invalidate()
package com.ray.test; import android.app.Activity; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.os.Bundle; import android.os.Handler; import android.view.View; public class TestHandler extends Activity { private MyView myView; private Handler mHandler; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); myView = new MyView(this); mHandler = new Handler(); mHandler.post(new Runnable(){ @Override public void run() { myView.invalidate(); mHandler.postDelayed(this, 5); } }); setContentView(myView); } class MyView extends View{ private float x = 0f; public MyView(Context context) { super(context); } protected void onDraw(Canvas canvas) { super.onDraw(canvas); x+=1; Paint mPaint = new Paint(); mPaint.setColor(Color.BLUE); canvas.drawRect(x, 40, x+40, 80, mPaint); } } }
在新线程里更新UI,可以直接postInvalidate()
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.requestWindowFeature(Window.FEATURE_NO_TITLE); myView = new MyView(this); this.setContentView(this.myView); new Thread(new myThread()).start(); } class myThread implements Runnable { public void run() { while (!Thread.currentThread().isInterrupted()) { try { myView.postInvalidate(); Thread.sleep(100); } catch (InterruptedException e) { Thread.currentThread().interrupt(); } } } }
发表评论
-
类似Chome的翻转效果
2012-09-18 23:14 2344简单的demo,屏幕上下滑动翻转View,类似Android ... -
3D编程基础数学之旋转及在Android中的应用
2012-02-10 00:11 0最近因为兴趣,看了一些3D编程的书,有种感觉就是写这些书的作者 ... -
Android中屏幕Density对BitmapDrawable的影响
2011-07-08 21:44 7844很早之前写的文章了,发在这里记录一下。 在之前的 ... -
Android程序与Javascript的交换
2010-04-16 21:40 0hello! -
Android Services使用示例
2010-01-12 16:50 14042Android开发中,当需要创建在后台运行的程序的时候,就要 ... -
Android游戏开发之服务器端
2010-01-09 16:38 6669首先我不知道这篇文章发到Android开发板块是否适合的,因为 ... -
Android ListView常用用法
2009-12-03 20:56 36599ListView是比较常用的控件,但一直都觉得创建ListVi ... -
Android View添加 Listener 小技巧示例
2009-12-02 15:35 9788在开发中为控件添加Listener是非常常见的工作,最简单的添 ... -
Android Gesture 手势识别使用实例
2009-10-20 11:56 10151很高兴能在Android1.6的sdk看到手势识别这一 ... -
Android第二个游戏 DragonFeed(勇者喂恶龙)
2009-10-12 17:57 7963这是参加学校一个小比赛的参赛游戏,之前一直在忙 认证考试和项目 ... -
Android 震动示例--心跳效果
2009-10-02 23:58 7673正在开发第二个游戏,计时就要结束的时候,为了营造紧张的气氛, ... -
Android adb的使用略解
2009-09-30 16:08 40218安卓网的一个帖子,写得不错,记下来 ADB全称Android ... -
Android游戏开发之连连看算法
2009-09-29 00:36 10347因为有朋友在站内信中问到连连看的具体算法,所以我就把算法pos ... -
android游戏开发之选关画面
2009-09-21 15:44 3974在游戏开发中,往往要提供选关的页面,选择关卡可以简单地使用li ... -
Android重力感应Demo
2009-09-11 23:33 13989android中的很多游戏的游戏都使用了重力感应的技术,但其a ... -
Android游戏开发之爆炸效果
2009-09-02 00:29 18355在做Android游戏MagicBubble开发的时候 ... -
Android 的第一个游戏
2009-08-18 08:48 7872学了android1个多月,做了一款连连看游戏,上了andro ... -
Android canvas的save()和restore()用法
2009-08-05 12:21 19830在读Android SDK里面的samples里面游戏的时候, ... -
Android 2d物理引擎Box2d的使用示例
2009-08-04 09:06 14197Box2d是一个很出名的2d物理引擎,大家可以google之。 ... -
android布局学习利器-Hierarchy Viewer
2009-07-27 18:17 8068Hierarchy Viewer 帮你分析应用程序UI布局 ...
相关推荐
Android Handler定时更新UI
Android异步处理一:使用Thread+Handler实现非UI线程更新UI界面。
NULL 博文链接:https://rayleung.iteye.com/blog/411860
ndroid异步处理一:使用Thread+Handler实现非UI线程更新UI界面
简单实现更新UI的操作,仅供学习参考 这里用到handler类,runnable类,按钮的点击事件
新线程中发送Handle消息,主线程中处理消息并更新TextView的值
本文实例讲述了Android编程实现使用handler在子线程中更新UI。分享给大家供大家参考,具体如下: MainActivity代码: package com.example.ui; import android.os.Handler; import android.os.Message; import ...
Android程序中可以使用的界面刷新方法有两种,分别是利用Handler和利用postInvalidate()来实现在线程中刷新界面。 利用Handler刷新界面 实例化一个Handler对象,并重写handleMessage方法调用invalidate()实现界面...
Demo-实例讲解线程池里面的UI如何刷新,处理两个开发者头疼的问题:...1. 数据经常需要读取更新,并且比较耗时,需要分步刷新UI. 2. UI界面切换后,如何停止掉子线程里面正在读取的数据而不会将旧数据刷新到新UI界面上.
主要介绍了android使用handler异步更新ui的示例,大家参考使用吧
Android的Handler使用方法总结,不错的文档,跟大家分享分享
android更新ui方法大合集,整合了4种方法,做成了一个小demo
Handler子线程更新ui的简单demo
android 中Handler 的几种写法,很简单的demo,大神简单修改下,用的是Handler.Callback,的方法
相信每位Android开发者们都知道更新UI只能在主线程中进行,若是在子线程执行任务后需要更新UI,则需要借助handler跳转到主线程中。以下介绍几种操作UI的方法。 一、使用Handler的handleMessage() Handler的构造 ...
* 创建一个Handler对象,使用Handler对象h把Runnable的对象r压入队列 * 此时只会会执行Run()方法,但是不会开启新的线程 */ //Handler h = new Handler(); //h.post(r); /* * 在java中真正开启...
就是另一个线程发送一个编号给消息所在的线程,那么该线程的消息处理程序就会收到该消息并进行处理,而消息采用int类型,所以int能够表示多少种数字就以为着有多少消息可以给你使用。这里是一个简单的HandlerDemo。
1.handler是什么? 2.handler怎么用? 3.为什么要用handler?
本程序实现了在屏幕中实时显示系统时间,其中用到了Handler、Timer、TimerTask、Message等关键技术。
Android Handler类详解 Android Handler类详解 Android Handler类详解 Android Handler类详解