Android ViewGroup提高绘制性能

原创 2012年03月23日 21:21:23

如果下面有很多子View,绘制的时候,需要开启其子View的绘制缓存功能,从而提高绘制效率。

public void setChildrenDrawingCacheEnabled(boolean enabled) {
    final int count = getChildCount();
    for (int i = 0; i < count; i++) {
        final View view = getChildAt(i);
        view.setDrawingCacheEnabled(true);
         
        // Update the drawing caches
        view.buildDrawingCache(true);
    }
}

另一方面也可以通过setDrawingCacheQuality(low)将缓存质量降低,减少内存。

最后结束的时候,需要通过以下代码来清空绘制缓存。

void clearChildrenCache() {
    final int count = getChildCount();
    for (int i = 0; i < count; i++) {
        final MyLayout layout = (MyLayout) getChildAt(i);
        layout.setChildrenDrawnWithCacheEnabled(false);
    }
}


Android 自定义View、ViewGroup(二)之绘制流程

android view绘制流程详解

Android群英传——第三章绘制View和ViewGroup

Android在绘制View之前,需要知道这个View的大小,即需要对View进行测量。这个过程在onMeasure方法中进行 Android提供了一个MeasureSpec类用来帮助我们测来嗯Vi...

Android群英传---View、ViewGroup的测量和绘制

View的测量系统通过onMeasure()对View进行测量1.系统提供MeasureSpec类帮助测量View MeasureSpec是32bit的int值,期中高2bit为测量的模式,低30位为...

多层ViewGroup性能

原文地址:http://periplanisi.com/android/2013/11/multi-pass-viewgroup-and-performance/    回溯到2009年,罗马一个家伙...

Android自定义ViewGroup-----流式布局

  • 2016年08月30日 16:35
  • 294KB
  • 下载

Android ViewGroup拦截触摸事件详解

在自定义ViewGroup中,有时候需要实现触摸事件拦截,比如ListView下拉刷新就是典型的触摸事件拦截的例子。触摸事件拦截就是在触摸事件被parent view拦截,而不会分发给其child,即...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android ViewGroup提高绘制性能
举报原因:
原因补充:

(最多只允许输入30个字)