Android提供了Invalidate方法实现界面刷新,但是Invalidate不能直接在线程中调用,因为他是违背了单线程模型:Android UI操作并不是线程安全的,并且这些操作必须在UI线程中调用。
Android程序中可以使用的界面刷新方法有两种,分别是利用Handler和利用postInvalidate()来实现在线程中刷新界面。
利用Handler刷新界面
实例化一个Handler对象,并重写handleMessage方法调用invalidate()实现界面刷新;而在线程中通过sendMessage发送界面更新消息。
// 在onCreate()中开启线程
new Thread(new GameThread()).start();、
// 实例化一个handler
Handler myHandler = new Handler()
{
//接收到消息后处理
public void handleMessage(Message msg)
{
switch (msg.what)
{
case Activity01.REFRESH:
mGameView.invalidate(); //刷新界面
break;
}
super.handleMessage(msg);
}
};
class GameThread implements Runnable
{
public void run()
{
while (!Thread.currentThread().isInterrupted())
{
Message message = new Message();
message.what = Activity01.REFRESH;
//发送消息
Activity01.this.myHandler.sendMessage(message);
try
{
Thread.sleep(100);
}
catch (InterruptedException e)
{
Thread.currentThread().interrupt();
}
}
}
}
使用postInvalidate()刷新界面
使用postInvalidate则比较简单,不需要handler,直接在线程中调用postInvalidate即可。
class GameThread implements Runnable
{
public void run()
{
while (!Thread.currentThread().isInterrupted())
{
try
{
Thread.sleep(100);
}
catch (InterruptedException e)
{
Thread.currentThread().interrupt();
}
//使用postInvalidate可以直接在线程中更新界面
mGameView.postInvalidate();
}
}
}
分享到:
相关推荐
本文将详细介绍两种在Android中实现界面刷新的方法:使用Handler和使用`postInvalidate()`。 首先,我们了解Android的UI线程模型。Android应用程序遵循单线程模型,所有的UI操作必须在主线程(也称为UI线程)中执行...
本文将详细讲解如何实现一个简单的Android欢迎界面,以增强应用程序的用户体验。 首先,我们需要理解Android欢迎界面的基本概念。它通常是一个在应用程序主界面加载前展示的短暂页面,可以包含品牌标识、动画效果...
Android 界面刷新是 Android 开发中非常重要的一部分,通过使用 Handler 或 postInvalidate() 方法,我们可以轻松实现界面的刷新。这些方法可以在线程中调用,并且可以保证 UI 的实时更新和交互性。 在实际开发中,...
"Android Ultra ptr 下拉刷新 仿QQ聊天界面的下拉刷新"是一个特殊的实现,它模仿了QQ聊天应用中的下拉刷新效果,特别是那个旋转的小圆圈动画。这种效果为用户提供了直观的反馈,表明数据正在加载中。 首先,我们来...
本话题主要探讨的是如何实现多种界面刷新样式,包括下拉刷新动画和上拉数据加载动画,这些设计可以提升应用的交互性和趣味性。我们将讨论以下几个方面: 1. **下拉刷新动画**:下拉刷新是移动应用中常见的功能,...
在Android开发中,界面刷新是用户体验的关键因素。一个流畅、响应迅速的用户界面可以极大地提升应用的品质。本文将深入探讨“android界面刷新count”这一主题,主要关注如何有效地更新Android应用程序的用户界面。 ...
在安卓(Android)应用开发中,用户界面的交互体验至关重要,而刷新按钮的动画效果是提升用户体验的一个关键因素。在本教程中,我们将探讨如何在Android工具栏中实现一个点击后由单箭头变为旋转圆圈的刷新按钮动画...
下面将详细介绍如何在Android界面中实现下拉刷新功能。 1. **SwipeRefreshLayout组件** Android SDK提供了一个名为`SwipeRefreshLayout`的布局容器,它是实现下拉刷新的核心组件。这个组件可以包含一个可滚动的...
实现WebView的下拉刷新功能,我们可以利用Android的SwipeRefreshLayout控件。SwipeRefreshLayout是Android SDK提供的一种可以包裹其他ViewGroup,尤其是ListView、GridView、RecyclerView等的容器,当用户下拉时,它...
Android 聊天表情实现以及下拉刷新聊天记录.zip Android 聊天表情实现以及下拉刷新聊天记录.zip Android 聊天表情实现以及下拉刷新聊天记录.zip Android 聊天表情实现以及下拉刷新聊天记录.zip Android 聊天表情实现...
因此,为了实现"android scrollview 下拉刷新",开发者通常需要结合其他组件和技巧。 首先,我们需要理解下拉刷新的基本概念。下拉刷新(Pull-to-Refresh)是指用户在顶部滑动屏幕时,如果达到一定距离,界面会显示...
android实现登录注册界面,教你怎么实现安卓小程序!
在Android 5.0(Lollipop)中,Google引入了一个新的UI组件——SwipeRefreshLayout,用于实现下拉刷新的功能。这个组件的设计目标是提供一个统一的、易于使用的接口,让用户能够通过简单的滑动手势来更新应用内容,...
在Android系统中,拨号界面是用户与手机通信功能交互的核心部分。它是用户拨打和接听电话的入口,设计简洁易用,集成了多种功能。本文将深入探讨Android拨号界面的相关知识点,包括其组成、功能、自定义以及API的...
在本项目中,你将找到一个可以直接运行的Android下拉刷新的代码实现。 下拉刷新的实现通常涉及到两个关键组件:SwipeRefreshLayout和RecyclerView(或ListView)。SwipeRefreshLayout是Android SDK提供的一种布局...
本教程将详细解释如何在Android中实现一个滑动欢迎界面,主要涉及的技术点包括:Android的SharedPreferences用于判断系统是否为首次启动,ViewPager用于实现页面间的滑动切换,以及自定义适配器来加载欢迎界面的各个...
本项目中,我们主要利用ViewPager这一组件来实现类似微信聊天界面的滑动切换效果,同时结合其他Android UI元素,如Fragment、Adapter等,构建出一个功能丰富的应用界面。 首先,`ViewPager`是Android SDK提供的一种...
滑动切换聊天、下拉刷新、上拉加载更多等手势操作已成为现代Android应用的标配。同时,恰当的动画效果可以增强用户的沉浸感,比如消息发送后的回弹动画、页面切换的过渡动画等。 源代码分析对于理解QQ界面设计至关...
声明:这也是我学习时在网上下载的,鉴于分享精神,并且觉得很不错才上传...android 漂亮的UI界面 完整的界面设计 这是一个完整的UI设计,但是没写动作,这是一个公司程序员的公司任务设计,请别商用,要用请修改。。。
在Android应用开发中,ListView是展示大量数据列表的常用组件,尤其在实现分页加载和下拉刷新功能时,它的作用更加突出。本教程将详细讲解如何在Android中利用ListView实现下拉自动分页刷新的功能。 首先,我们需要...