`
cswcfs
  • 浏览: 11379 次
  • 性别: Icon_minigender_1
  • 来自: 成都
最近访客 更多访客>>
社区版块
存档分类
最新评论

Android实现界面刷新(转载)

阅读更多
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 实现界面刷新的几种方法

    本文将详细介绍两种在Android中实现界面刷新的方法:使用Handler和使用`postInvalidate()`。 首先,我们了解Android的UI线程模型。Android应用程序遵循单线程模型,所有的UI操作必须在主线程(也称为UI线程)中执行...

    android欢迎界面简单实现

    本文将详细讲解如何实现一个简单的Android欢迎界面,以增强应用程序的用户体验。 首先,我们需要理解Android欢迎界面的基本概念。它通常是一个在应用程序主界面加载前展示的短暂页面,可以包含品牌标识、动画效果...

    Android界面刷新的方法分享

    Android 界面刷新是 Android 开发中非常重要的一部分,通过使用 Handler 或 postInvalidate() 方法,我们可以轻松实现界面的刷新。这些方法可以在线程中调用,并且可以保证 UI 的实时更新和交互性。 在实际开发中,...

    Android Ultra ptr 下拉刷新 仿QQ聊天界面的下拉刷新

    "Android Ultra ptr 下拉刷新 仿QQ聊天界面的下拉刷新"是一个特殊的实现,它模仿了QQ聊天应用中的下拉刷新效果,特别是那个旋转的小圆圈动画。这种效果为用户提供了直观的反馈,表明数据正在加载中。 首先,我们来...

    Android炫酷界面刷新

    本话题主要探讨的是如何实现多种界面刷新样式,包括下拉刷新动画和上拉数据加载动画,这些设计可以提升应用的交互性和趣味性。我们将讨论以下几个方面: 1. **下拉刷新动画**:下拉刷新是移动应用中常见的功能,...

    android 界面刷新count

    在Android开发中,界面刷新是用户体验的关键因素。一个流畅、响应迅速的用户界面可以极大地提升应用的品质。本文将深入探讨“android界面刷新count”这一主题,主要关注如何有效地更新Android应用程序的用户界面。 ...

    安卓Android工具栏刷新按钮的动画旋转效果实现

    在安卓(Android)应用开发中,用户界面的交互体验至关重要,而刷新按钮的动画效果是提升用户体验的一个关键因素。在本教程中,我们将探讨如何在Android工具栏中实现一个点击后由单箭头变为旋转圆圈的刷新按钮动画...

    android界面下拉刷新代码

    下面将详细介绍如何在Android界面中实现下拉刷新功能。 1. **SwipeRefreshLayout组件** Android SDK提供了一个名为`SwipeRefreshLayout`的布局容器,它是实现下拉刷新的核心组件。这个组件可以包含一个可滚动的...

    Android 之WebView实现下拉刷新和其他相关刷新功能

    实现WebView的下拉刷新功能,我们可以利用Android的SwipeRefreshLayout控件。SwipeRefreshLayout是Android SDK提供的一种可以包裹其他ViewGroup,尤其是ListView、GridView、RecyclerView等的容器,当用户下拉时,它...

    Android 聊天表情实现以及下拉刷新聊天记录.zip

    Android 聊天表情实现以及下拉刷新聊天记录.zip Android 聊天表情实现以及下拉刷新聊天记录.zip Android 聊天表情实现以及下拉刷新聊天记录.zip Android 聊天表情实现以及下拉刷新聊天记录.zip Android 聊天表情实现...

    android scrollview 下拉刷新

    因此,为了实现"android scrollview 下拉刷新",开发者通常需要结合其他组件和技巧。 首先,我们需要理解下拉刷新的基本概念。下拉刷新(Pull-to-Refresh)是指用户在顶部滑动屏幕时,如果达到一定距离,界面会显示...

    android实现登录注册界面

    android实现登录注册界面,教你怎么实现安卓小程序!

    android5.0下拉刷新

    在Android 5.0(Lollipop)中,Google引入了一个新的UI组件——SwipeRefreshLayout,用于实现下拉刷新的功能。这个组件的设计目标是提供一个统一的、易于使用的接口,让用户能够通过简单的滑动手势来更新应用内容,...

    Android拨号界面

    在Android系统中,拨号界面是用户与手机通信功能交互的核心部分。它是用户拨打和接听电话的入口,设计简洁易用,集成了多种功能。本文将深入探讨Android拨号界面的相关知识点,包括其组成、功能、自定义以及API的...

    android列表下拉刷新

    在本项目中,你将找到一个可以直接运行的Android下拉刷新的代码实现。 下拉刷新的实现通常涉及到两个关键组件:SwipeRefreshLayout和RecyclerView(或ListView)。SwipeRefreshLayout是Android SDK提供的一种布局...

    android 滑动欢迎界面实现

    本教程将详细解释如何在Android中实现一个滑动欢迎界面,主要涉及的技术点包括:Android的SharedPreferences用于判断系统是否为首次启动,ViewPager用于实现页面间的滑动切换,以及自定义适配器来加载欢迎界面的各个...

    android开发仿微信界面实现

    本项目中,我们主要利用ViewPager这一组件来实现类似微信聊天界面的滑动切换效果,同时结合其他Android UI元素,如Fragment、Adapter等,构建出一个功能丰富的应用界面。 首先,`ViewPager`是Android SDK提供的一种...

    Android qq界面详细设计

    滑动切换聊天、下拉刷新、上拉加载更多等手势操作已成为现代Android应用的标配。同时,恰当的动画效果可以增强用户的沉浸感,比如消息发送后的回弹动画、页面切换的过渡动画等。 源代码分析对于理解QQ界面设计至关...

    android 漂亮的UI界面 完整的界面设计

    声明:这也是我学习时在网上下载的,鉴于分享精神,并且觉得很不错才上传...android 漂亮的UI界面 完整的界面设计 这是一个完整的UI设计,但是没写动作,这是一个公司程序员的公司任务设计,请别商用,要用请修改。。。

    android中listview实现下拉自动分页刷新资源

    在Android应用开发中,ListView是展示大量数据列表的常用组件,尤其在实现分页加载和下拉刷新功能时,它的作用更加突出。本教程将详细讲解如何在Android中利用ListView实现下拉自动分页刷新的功能。 首先,我们需要...

Global site tag (gtag.js) - Google Analytics