吧opengl的渲染保存在一个 Bitmap 下
int b[]=new int[w*h];
int bt[]=new int[w*h];
IntBuffer ib=IntBuffer.wrap(b);
ib.position(0);
gl.glReadPixels(x, y, w, h, GL10.GL_RGBA, GL10.GL_UNSIGNED_BYTE, ib);
for(int i=0; i<h; i++)
{
for(int j=0; j<w; j++)
{
int pix=b[i*w+j];
int pb=(pix>>16)&0xff;
int pr=(pix<<16)&0x00ff0000;
int pix1=(pix&0xff00ff00) | pr | pb;
bt[(h-i-1)*w+j]=pix1;
}
}
Bitmap sb=Bitmap.createBitmap(bt, w, h, Config.ARGB_8888);
然后使用
String uriStr = MediaStore.Images.Media.insertImage(context.getContentResolver(), bm, "", "");
if(uriStr == null){
return false;
}
String picPath = getFilePathByContentResolver(this, Uri.parse(uriStr) );
if(picPath == null) {
return false;
}
ContentResolver contentResolver = context.getContentResolver();
ContentValues values = new ContentValues(4);
values.put(Images.Media.DATE_TAKEN, System.currentTimeMillis());
values.put(Images.Media.MIME_TYPE, "image/png");
values.put(Images.Media.ORIENTATION, 0);
values.put(Images.Media.DATA, picPath);
contentResolver.insert(Images.Media.EXTERNAL_CONTENT_URI, values);
结果发现保存的图片都是全黑的jpg(应该是png但是保存的是jpg),我用这个方法在其他品牌的手机上都能正常使用,请问华为系列贴别是荣耀系列有什么特殊方案来解决全黑么