我遇到了一个lib,其中使用了mDrawable.getConstantState()。newDrawable(mResources)。现在,既然系统似乎已经自动进行了这种缓存,我想知道,有什么理由可以使用这种方法吗?
答案 0 :(得分:0)
我做了一些研究,我将回答我自己的问题,以防它帮助某人。
使用资源ID获取drawable时,系统会自动为您执行缓存。另一方面,当您以另一种方式获取可绘制对象时(例如Drawable.createFromStream(InputStream)),您可以使用上述方法获得相同的缓存优势。
但请注意,它不适用于您的自定义drawable,除非您重写getConstantState()并返回ConstantState抽象类的正确实现。