软件渲染不支持Oreo中的硬件位图

时间:2017-12-29 11:00:09

标签: android

LinearLayout llQRCodeShare;
try {
    llQRCodeShare.setDrawingCacheEnabled(true);
    llQRCodeShare.buildDrawingCache(true);
    Bitmap b = llQRCodeShare.getDrawingCache();
    Bitmap bitmap = Bitmap.createBitmap(b);
    llQRCodeShare.setDrawingCacheEnabled(false);
} catch (IllegalStateException e) {
    LogUtil.e(TAG, e.getMessage());    //Software rendering doesn't support hardware bitmap
}

执行代码"llQRCodeShare.getDrawingCache()"时,抛出异常,

Software rendering doesn't support hardware bitmap

在android8.0上。
怎么解决?

3 个答案:

答案 0 :(得分:2)

只需在android:hardwareAccelerated="true"标签下的AndroidManifest.xml中创建Application

答案 1 :(得分:0)

在清单中的android:supportsRtl = "true"下方的应用部分中添加

答案 2 :(得分:0)

为整个Activity禁用hardware acceleration

android:hardwareAccelerated="false"

或针对特定的View

llQRCodeShare.setLayerType(View.LAYER_TYPE_SOFTWARE, null);