listView上的getDrawingCache非常慢(60ms)

时间:2016-07-04 18:00:02

标签: android performance android-layout listview android-view

我需要在画布上显示Lisview。 我所做的是使用mListView.scrollListBy有问题地滚动列表,然后我调用mListView.getDrawingCache()方法获取列表视图的“快照”并在画布上绘制它们。

    mListView.setDrawingCacheEnabled(true);
        mListView.buildDrawingCache();
        if (mListView.getDrawingCache() != null) {
            c.drawBitmap(mListView.getDrawingCache(), 0, 0, null);
        }
        mListView.setDrawingCacheEnabled(false);
        mListView.destroyDrawingCache();

我正在经历一个非常慢的帧速率(8-14 fps)所以我定时这部分,我看到c.drawBitmap只占用大约8ms(我使用ARGB_8888所以它的合理性)但是第一次获得调用get绘图缓存最长可达80毫秒(最高可达5 fps !!!)。 我试图删除buildDrawingCache行,但80ms进入if语句。 有没有办法优化这个性能?如果不是,那么无论如何都要将listView子类化并在scrollListBy函数中执行此操作? 谢谢。

0 个答案:

没有答案