【问题标题】:How do I refresh the Screen before a method ends in droid?如何在方法以 droid 结束之前刷新屏幕?
【发布时间】:2012-07-25 17:47:22
【问题描述】:

如果我将一个ImageView 的源更改为另一个,(从而更改图像)但随后在方法等中发生更多更改。如何在方法结束之前强制它刷新以显示更改? (因为等待方法结束显示更改的图像根本不适合我的目的)

【问题讨论】:

    标签: android refresh validation


    【解决方案1】:

    There's a Very Similar question that has an excellent answer (and a link to another similar question) right here.

    基本上,除非您自己创建线程,否则您是在 UI 线程中运行的。无效/睡眠只是暂停渲染/输入/等。您的 redraw() 仅在当前函数退出后在 UI 线程中调用。您想将两者分开,或使用较低级别的技术(postInvalid() 在另一个线程中,或 SurfaceView w/ repaint() 分别)。

    【讨论】:

    • hmmm 我仍然有些困惑,尽管我觉得我以错误的方式处理整个项目 -_- 线程是正确启动的 Java 类吗?我有一个巨大的 playscreen.java 当从另一个屏幕按下播放按钮时启动。这包含 UI 和“游戏引擎”所以如果我需要刷新..我需要将我的“游戏引擎”放在另一个类中..当 UI 启动时也会启动并在需要的地方有 postInvalid()在每个图像或文本更改时?还有在 postInvalid 之前会发生什么,我将如何从一开始就启动
    • 听起来您的“游戏引擎”正在 UI 线程上运行。这是非常非常糟糕的
    • 所以我的游戏引擎应该在不同的 java 类中?我如何让 UI 和游戏引擎类同时运行?
    • 看看这个视频......对不起......这些视频。 2010 年的 Google IO 视频现在也发布了:developer.android.com/videos/index.html#v=U4Bk5rmIpic & developer.android.com/videos/index.html#v=7-62tRHLcHk
    • 看了第一个视频,浏览了第二个视频。好像我需要在线程中扔东西?现在来学习线程嘿嘿。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-04
    • 1970-01-01
    • 2021-11-16
    • 1970-01-01
    • 2021-02-25
    相关资源
    最近更新 更多