对view截图后,保存到本地发现背景是黑色的,
方案一:
//对View进行截图,使控件可以进行缓存
llImg.setDrawingCacheEnabled(true);
//获取缓存的 Bitmap
Bitmap qrAndTextImg = llImg.getDrawingCache();
//复制获取的 Bitmap
qrAndTextImg = Bitmap.createBitmap(qrAndTextImg);
//关闭视图的缓存
llImg.setDrawingCacheEnabled(false);
// 解决分享背景变成黑色问题,
Bitmap newBitmap = Bitmap.createBitmap(qrAndTextImg.getWidth(), qrAndTextImg.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(newBitmap);
canvas.drawColor(Color.WHITE);//这里把背景设置为白色
Paint paint = new Paint();
canvas.drawBitmap(qrAndTextImg, 0, 0, paint);
// 保存到本地
boolean isSuccess = newBitmap.compress(Bitmap.CompressFormat.JPEG, 70, fileOutputStream);
方案二:
//对View进行截图,使控件可以进行缓存
llImg.setDrawingCacheEnabled(true);
//获取缓存的 Bitmap
Bitmap qrAndTextImg = llImg.getDrawingCache();
//复制获取的 Bitmap
qrAndTextImg = Bitmap.createBitmap(qrAndTextImg);
//关闭视图的缓存
llImg.setDrawingCacheEnabled(false);
//保存的时候使用png格式
???????boolean isSuccess = qrAndTextImg.compress(Bitmap.CompressFormat.PNG, 70, fileOutputStream);
|