哪个路径可以提供更好的性能位图或视图?

时间:2019-05-13 07:13:11

标签: android bitmap android-view

我正在研究在Recycler View中渲染自定义视图(heavy operation as it has deep hierarchy and many child view's)。

由于我在快速滚动时RecyclerView经常滞后。即使在尝试了许多优化作为Rendering Block的UI(Main)线程之后。

因此,为解决此问题,我尝试从View创建位图(第一次并对其进行缓存),然后将其渲染到RecyclerView上(使用ImageView)。

现在,一旦将所有视图都缓存为位图,滚动就很平滑了。

问题:  由于创建了BitMap,我遇到了OOM(内存不足)崩溃的情况。

  

java.lang.OutOfMemoryError:无法分配2073612字节   分配891786个可用字节和870KB直到OOM在   dalvik.system.VMRuntime.newNonMovableArray(本机方法)位于   android.graphics.Bitmap.nativeCreate(Native Method)在   android.graphics.Bitmap.createBitmap(Bitmap.java:946)在   android.graphics.Bitmap.createBitmap(Bitmap.java:917)位于   android.graphics.Bitmap.createBitmap(Bitmap.java:884)

我现在要分析哪种方法最好?

  1. 使用协程直接在RecyclerView和UnBlock主线程上渲染View。这会遇到OOM之类的问题吗?
  2. 按原样使用位图。但是OOM不可预测,因为创建位图很繁琐

需要帮助:

  • 什么是最好的方法?
  • 如果我过度使用并缺少解决方案?

0 个答案:

没有答案