我需要在画布上显示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函数中执行此操作? 谢谢。