我需要将一个byte数组转换为rgb565的bitmap,每两个数组元素拼成一个颜色值
按我的个人理解,这么做的(data为得到的byte数组):
int[] img_data = new int[data.length / 2];
for (int i = 0; i < data.length - 1; i += 2) {
int data1 = data[i];
int data2 = data[i + 1];
img_data[i / 2] = (data1 << 8) | data2;
// img_data[i / 2] = ((data1 << 24) >>> 16 ) | data2;
}
Bitmap bitmap = Bitmap.createBitmap(img_data, width, height,Config.RGB_565);
这么得到的图片不正常,有时覆盖绿色,有时黄色(效果图见下边)。。有知道是怎么回事的吗?
正常图片应该是这样的:
而生成的图片却是这样的: