阅读http://developer.android.com/guide/topics/graphics/hardware-accel.html后,我对3种不同类型的分层技术的理解是(假设设备有GPU)
我理解某些绘制操作并非由setShadowLayer
等GPU支持。因此,我们需要切换到LAYER_TYPE_SOFTWARE
,以便 draw 将由软件执行。
但是,由于软件的屏幕外位图内存已转移到GPU操作,因此事情可能会显得较慢。
我认为这是大多数设备的默认设置。所以,我认为我们应该在大多数时候使用这种技术。
我不知道何时使用这种技术。我们非常感谢任何一个例子,我们应该应用LAYER_TYPE_HARDWARE
技术。
p / s另外,我对 LAYER_TYPE _... 的理解可能显得有误。如果你发现任何错误,请纠正我。谢谢。
答案 0 :(得分:1)
何时使用LAYER_TYPE_HARDWARE
当我想绘制一个剪切父视图的文本时(允许您查看它),我使用:
for(int i=0;i<100;++i)
{
// do a lot of with it, call functions and so on but always use data_array[i]
}
例如在我的自定义视图中:
setLayerType(View.LAYER_TYPE_HARDWARE, null)
结果:
https://angular.io/guide/reactive-forms#dynamic-controls-using-form-arrays
并且未设置LAYER_TYPE_HARDWARE:
答案 1 :(得分:0)
基本上像绘图缓存一样。如果自定义视图的渲染/绘制成本很高,但是内容的更改不会经常发生,那么我将使用该标志。否则,您只会无缘无故地强调设备以进行缓存。