Viewandroid一个超类,这个类几乎包括了所有的屏幕类型。每个View都有一个用于绘图的画布,这个画布可以进行任意的扩展。任何一个View类的重写onDraw方法来实现界面显示。Android中的View提供了onKeyUponKeyDownonKeyMultipleonKeyPreImeonTouchEventonTrackballEvent等方法,可以轻松处理游戏中的时间信息,所以继承View时,需要重载这几个方法,当有按键按下或者松开时,自然有代码找到对应的方法来进行处理相应的事件。

  Android中提供了invalidate方法来实现界面刷新,invalidate是不能在线程中调用的,因为他违背了android的单线程模型,Android中的UI操作并不是线程安全的,并且这些操作必须在U主I线程中执行,因此android中最常用的方法就是使用Handler来实现UI的更新,当然用AsyncTask也可以。

  那么什么是主线程呢?进入onCreateonResume等系统调用的函数的时候,这个时候就是主控线程。这不是我们自己调用onCreate()等方法,在非UI主控线程中,不得修改UI的显示。不然会抛出android.view.ViewRoot$CalledFromWrongThreadException:Onlytheoriginalthreadthatcreatedaviewhierarchycantouchitsviews.的异常。如果需要修改的话,就需要用到Handler也就是说,我们在非UI主控线程中,如果需要修改UI,则向UI主界面发送一个消息。 handle.sendEmptyMessage(0);

更多相关文章

  1. 浅谈Java中Collections.sort对List排序的两种方法
  2. Python list sort方法的具体使用
  3. python list.sort()根据多个关键字排序的方法实现
  4. android SystemClock设置系统时间需要system权限
  5. Android(安卓)三言两语
  6. Android(安卓)Studio 快捷键
  7. Vue JS 与Android(安卓)webview的交互
  8. Material Design:利用RecyclerView CardView实现新闻卡片样式
  9. Android中线程同步之Mutex与Condtion的用法

随机推荐

  1. Android--控件Button的详细用法介绍(适合
  2. 如何提交Code到google open source andro
  3. Android的分辨率支持
  4. Android(安卓)内容提供器---内容提供器基
  5. Android获取双卡双待手机的SIM卡信息示例
  6. 微信消息中的电话超链接(ios vs Android)
  7. Firefox常见问题总结
  8. Android个推php后台开发
  9. Android之Handling Runtime Changes(处理
  10. Android(安卓)studio更新版本后Gradle sy