私は、透明な背景を持つ相対的なレイアウトを持っています。描画キャッシュやキャンバスを使用してビットマップをキャプチャすると、私は手段の多くを試してみましたが、実際の作業がどこにある何の成功は...透明な背景を持つ相対レイアウトのスナップショットをキャプチャすると、黒の背景が透明でないビットマップが得られます。
rl_mainCanvesLayout.setDrawingCacheBackgroundColor(Color.TRANSPARENT);
Bitmap bitmap =Bitmap.createBitmap(rl_mainCanvesLayout.getDrawingCache());
rl_mainCanvesLayout.setDrawingCacheEnabled(false);
Bitmap bitmap = Bitmap.createBitmap(rl_mainCanvesLayout.getDrawingCache());
private String savebitmap(Bitmap bitmap, String filename) {
String dir = Environment.getExternalStorageDirectory() + File.separator + "abc";
File file_dir = new File(dir);
file_dir.mkdir();
FileOutputStream outStream = null;
File file = new File(dir, filename + ".jpg");
if (file.exists()) {
file.delete();
file = new File(dir, filename + ".jpg");
Log.e("file exist", "" + file + ",Bitmap= " + filename);
}
try {
outStream = new FileOutputStream(file);
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, outStream);
outStream.flush();
outStream.close();
} catch (Exception e) {
e.printStackTrace();
}
Log.e("file", "" + file);
return file.toString();
}
PNG形式で保存してください。JPEGには透過性のサポートがありません。 –
それは働きました。 –