Android的Canvas.drawPicture不与冰淇淋三明治设备工作(Android Can

2019-06-24 02:26发布

我想画一个Picture上的Canvas

mCanvas.drawpicture(mPicture, mRect)

使用目标API 7 <uses-sdk android:minSdkVersion="7"/>它完全与API <14的设备,但是在与冰淇淋三明治装置,它不工作。 显然,这是因为canvas.drawPicture不带硬件加速支持: 不支持的绘图操作我试图通过禁用清单中的硬件加速来解决这个问题:

<application android:hardwareAccelerated="false" ...>

但还是简化版,工作。

Answer 1:

我有同样的问题,并通过仅在将绘制视图编程关闭硬件加速解决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);
    }
}


Answer 2:

尝试更换drawPicturedrawBitmap 。 语法几乎是相同的,你只需要通过一个源矩形(只是让图像的大小)和涂料(其中,如果你不编辑图像可以为空)。



文章来源: Android Canvas.drawPicture not working in devices with ice cream sandwich