我想画一个Picture
上的Canvas
由
mCanvas.drawpicture(mPicture, mRect)
使用目标API 7 <uses-sdk android:minSdkVersion="7"/>
它完全与API <14的设备,但是在与冰淇淋三明治装置,它不工作。 显然,这是因为canvas.drawPicture不带硬件加速支持: 不支持的绘图操作我试图通过禁用清单中的硬件加速来解决这个问题:
<application android:hardwareAccelerated="false" ...>
但还是简化版,工作。
我有同样的问题,并通过仅在将绘制视图编程关闭硬件加速解决Picture
view.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
然而setLayerType仅支持,因为API 11.因此,使用这种方法来代替:
public static void setHardwareAccelerated(View view, boolean enabled){
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB){
if(enabled)
view.setLayerType(View.LAYER_TYPE_HARDWARE, null);
else view.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
}
}
尝试更换drawPicture
与drawBitmap
。 语法几乎是相同的,你只需要通过一个源矩形(只是让图像的大小)和涂料(其中,如果你不编辑图像可以为空)。