ImageView已加载了一张67KB的1514×564 PNG图像。
需要将包含此类ImageView的多个视图的LinearLayout绘制到画布中。 调用ImageView.draw(Canvas)方法时,画布大小(以字节为单位)从67KB增加到13MB! (因为“draw”绘制位图,而不是压缩的PNG)
是否有一种简单的方法可以让imageView将自己绘制为PNG?
到目前为止,我已经考虑过扩展ImageView并使用在绘制之前压缩位图的内容覆盖draw方法。
答案 0 :(得分:0)
是否有一种简单的方法可以让imageView将自己绘制为PNG?
不,因为没有这样的概念。而且,你已经有了PNG,所以不清楚你为什么要首先调用draw()`。如果你想要一个PNG,请使用你的PNG。
到目前为止,我已经考虑过扩展ImageView并使用在绘制之前压缩位图的内容覆盖draw方法。
那将毫无意义,因为您需要在绘制之前重新解压缩图像。 Canvas
绘制Bitmap
,而不是PNG,Bitmap
是解压缩的图片。