View的更新方式主要有以下3种:

1.不使用多线程和双缓冲

这种情况最简单,在View发生改变时对UI进行重绘。你只需要Activity中显式调用View对象中的invalidate()方法即可,系统会自动调用View的onDraw()方法。

2.使用多线程和不使用双缓冲

通过Handler对象,在子线程发送消息,在主线程处理消息更新UI。

3.使用多线程和双缓冲

Android的SurfaceView是View的子类,它同时也实现了双缓冲。你可以定义一个它的子类并实现Surfaceholder.Callback接口。由于SurfaceHolder.Callback接口,新线程就不要android.os.Handler帮忙了。SurfaceHolder中lockCanvas()方法可以锁定画布,绘制完新的图像后调用unlockCanvasand Post解锁。

Android中View如何刷新相关推荐

  1. android listview 数据同步,android中ListView数据刷新时的同步方法

    本文实例讲述了android中ListView数据刷新时的同步方法.分享给大家供大家参考.具体实现方法如下: public class Main extends BaseActivity { priv ...

  2. Android中View绘制各种状态的背景图片原理深入分析以及StateListDrawable使用

    /* Call this to force a view to update its drawable state. This will cause drawableStateChanged to b ...

  3. Android 中View的绘制机制源代码分析 三

    到眼下为止,measure过程已经解说完了,今天開始我们就来学习layout过程.只是在学习layout过程之前.大家有没有发现我换了编辑器,哈哈.最终下定决心从Html编辑器切换为markdown编 ...

  4. Android中View绘制流程以及invalidate()等相关方法分析

                                                                                                        ...

  5. Android 中View仅仅能接收到ACTION_DOWN无法接收ACTION_MOVE和ACTION_UP解决的方法

    Android 中View仅仅能接收到ACTION_DOWN无法接收ACTION_MOVE和ACTION_UP解决的方法 参考文章: (1)Android 中View仅仅能接收到ACTION_DOWN ...

  6. Android中View转换为Bitmap及getDrawingCache=null的解决方法

    Android中View转换为Bitmap及getDrawingCache=null的解决方法 参考文章: (1)Android中View转换为Bitmap及getDrawingCache=null的 ...

  7. android中view手势滑动冲突的两种解决方法

    android中view手势滑动冲突的解决方法,主要解决方法有两种,外部和内部拦截.有需要的可以参考下. Android手势事件的冲突跟点击事件的分发过程息息相关,由三个重要的方法来共同完成,分别是: ...

  8. android view 绘制过程,深入理解Android中View绘制的三大流程

    前言 最近对Android中View的绘制机制有了一些新的认识,所以想记录下来并分享给大家.View的工作流程主要是指measure.layout.draw这三大流程,即测量.布局和绘制,其中meas ...

  9. 深入解析Android中View的工作原理

    Android中的任何一个布局.任何一个控件其实都是直接或间接继承自View实现的,当然也包括我们在平时开发中所写的各种炫酷的自定义控件了,所以学习View的工作原理对于我们来说显得格外重要,本篇博客 ...

最新文章

  1. redis安装教程 windows环境
  2. python autoreload
  3. mysql如何查看表拥有的键_如何查看表或列的所有外键?
  4. 【java】深入理解Java JVM虚拟机中init和clinit的区别
  5. swift:创建滚动视图的图片轮播器
  6. .vue文件怎么使用_Vue使用ifream遇到的问题?怎么处理跨域呢?
  7. OC--Protocol 协议
  8. Oracle中使用SQL语句修改字段类型
  9. ArduinoUNO-IRremote 红外线接收模块使用(还没写完)
  10. jQuery学习笔记之选取选定复选框的同行某列元素
  11. word 目录格式的设置
  12. PyTorch Python API:FX || Intro
  13. 曹德旺的商业哲学:如果你对谁都不相信,必将一事无成
  14. vue注册了却没有使用的错误: component has been registered but not used
  15. ARM汇编之kile环境
  16. c语言中猜字母代码怎么打,C语言代码实现猜数字
  17. Java输出一个*号十字架
  18. SublimeLinter
  19. Qt中添加资源文件及资源文件的使用
  20. oracle log_archive_dest_1 未指定导致flash_recovery_area引发数据库挂起

热门文章

  1. 使用ajax不刷新页面获取、操作数据
  2. 2022-2028年中国钢铁电商产业竞争现状及发展前景预测报告
  3. Redis 笔记(14)— 持久化及数据恢复(数据持久方式 RDB 和 AOF、数据恢复、混合持久化)
  4. 模型可视化_20210208
  5. 【PyTorch学习笔记】4:在Tensor上的索引和切片
  6. \r \r\n \t的区别
  7. react非常适合入门者学习使用的后台管理框架
  8. 合肥工业大学—SQL Server数据库实验三:SQL语句创建和删除基本表
  9. 快速上手MyBatisPlus~(基友搭配,效率翻倍)
  10. TVM 优化 ARM GPU 上的移动深度学习