WEB开发网
开发学院手机开发Android 开发 android用户界面编程技巧——更新请求 阅读

android用户界面编程技巧——更新请求

 2011-01-11 09:25:16 来源:WEB开发网   
核心提示:此篇文章还是google官方开发者日上的分享内容,前面两篇文章有过详细说明,android用户界面编程技巧——更新请求,android用户界面编程技巧——如何使用Adapterandroid用户界面编程技巧——背景和图像的开发技巧情况说明当程序的数据有改变的时候就需要更新

此篇文章还是google官方开发者日上的分享内容,前面两篇文章有过详细说明。

android用户界面编程技巧——如何使用Adapter

android用户界面编程技巧——背景和图像的开发技巧

情况说明

当程序的数据有改变的时候就需要更新屏幕,这个时候我们就采用invalidata方法。这个方法简单方便,而当我们调用这个方法的时候我们整个视图都发生了更新。而我们的数据一般情况下只是在某一个区域内做出改变,这个时候我们再去更新其他没有数据改变的区域就很浪费资源。这个时候我们考虑如何优化。

解决办法

Android提供系统了两个局部更新数据的方法:

invalidate(Rect dirty);

invalidate(int left, int top, int right,int bottom);

利用这两个方法我们就可以只对需要更新的区域做出更新,其他不需要数据更新的区域就不会发生更新。这样节省了很多资源。

实例分析:

在屏幕上触摸移动小图标。

方法一:采用最简单的编码方法在每次响应移动事件的时候调用invalidate方法。

如图所示程序需要更新曲线框中的所有区域,也就是整个屏幕,而其中其他五个组件没有变化是不需要更新的。

方法二:移动小圆圈改变的区域,其他区域不做更新。

如图所示程序只需要更新红色圆圈和粉红色圆圈所构成的矩形区域,即图中的虚线区域。

效率展示:

方法一每秒更新18个frame

方法二  每秒48 个frame 更新

从图中可以看出局部更新的两个方法的效率是相同的。

Tags:android 用户界面

编辑录入:coldstar [复制链接] [打 印]
赞助商链接