Android新手。我正在拍摄我的活动的屏幕截图,并通过电子邮件发送出去。这是我的过程:
public void emailScreenShot() {
//get bitmap of activity
View v = DeSlip.this.getWindow().getDecorView();
Bitmap bitmap = Bitmap.createBitmap(v.getWidth(),
v.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
v.draw(canvas);
//save bitmap externally
String path = Environment.getExternalStorageDirectory().toString();
File file = new File(path, AName + "vs" + BName+ ".JPEG");
Uri pngUri = Uri.fromFile(file);
FileOutputStream fos;
//compress
try {
fos = new FileOutputStream(file);
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos);
fos.flush();
fos.close();
} catch (FileNotFoundException e) {
Log.e("BoutSlip", e.getMessage(), e);
} catch (IOException e) {
Log.e("BoutSlip", e.getMessage(), e);
}
//email intent
Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
emailIntent.setType("image/png");
emailIntent.putExtra(android.content.Intent.EXTRA_STREAM, pngUri);
startActivity(Intent.createChooser(emailIntent, "Send image using:"));
}
这很好用,并把我的东西拿到互联网上。我的问题是关于使用外部存储(我在清单中有权限)。在我关闭之前完成使用之后,是否有一些我应该做的过程来删除或删除这个位图?或者android内存管理会自动处理其他堆栈项目吗?
我的直觉说没有,但是你确实希望这个位图足够长时间发送电子邮件(但我没有在画廊应用程序上看到它,所以我知道它在那里不可用)。