我通过 JNI 调用 C++ 函数并传递一个 RGBA_8888 位图,锁定它,更改值,解锁它,返回,然后使用以下 C++ 代码在 Java 中显示它:
AndroidBitmap_getInfo(env, map, &info) < 0);
AndroidBitmap_lockPixels(env, map, (void**)&pixel);
for(i=info.width*info.height-1;i>=0;i--)
{ pixel[i] = 0xf1f1f1f1;
}
AndroidBitmap_unlockPixels(env, map);
我遇到的问题是位图看起来不像我预期的那样,当我在 Java 中检查它们时,像素值(使用 getPixel 验证)与我在 C++ 中设置的不同。当我将位图值设置为 0xffffffff 时,我在 Java 中得到了正确的值,但对于其他许多我没有。例如 0xf1f1f1f1 变成 0xF1FFFFFF。
我该怎么做才能让它工作?
PS:我使用的是安卓 2.3.4