我在通过 android.renderscript.Allocation 加载动画 GIF 时遇到困难。这是有缺陷的代码:
Bitmap out = Bitmap.createBitmap(src.getWidth(), src.getHeight(), Bitmap.Config.ARGB_8888);
mInAllocation = Allocation.createFromBitmap(mRS, src,
Allocation.MipmapControl.MIPMAP_NONE, Allocation.USAGE_SCRIPT);
它在运行 Android 4.2 的 Nexus 4 上运行良好,但在运行 Android 4.1 的 Optimus G 上失败。抛出的异常是:
E/AndroidRuntime(8398): Caused by: android.renderscript.RSInvalidStateException: Bad bitmap type: null
这是从 Allocation.typeFromBitmap 抛出的,因为 src.getConfig 返回 null;即使我使用以下代码专门创建它:
BitmapFactory.Options bitmapOptions = new BitmapFactory.Options();
bitmapOptions.inPreferredConfig = Bitmap.Config.ARGB_8888;
Bitmap photo = BitmapFactory.decodeByteArray(data, 0, data.length, bitmapOptions);