有人可以帮我把我的代码放在商店下面缓存而不是我的SD卡。我正在截取我的应用程序的屏幕截图,用于在社交媒体上分享。
// image naming and path to include sd card
String mPath = Environment.getExternalStorageDirectory().toString() + "/" + ACCUWX.IMAGE_APPEND;
// create bitmap screen capture
Bitmap bitmap;
View v1 = mCurrentUrlMask.getRootView();
v1.setDrawingCacheEnabled(true);
bitmap = Bitmap.createBitmap(v1.getDrawingCache());
v1.setDrawingCacheEnabled(false);
OutputStream fout = null;
imageFile = new File(mPath);
try {
fout = new FileOutputStream(imageFile);
bitmap.compress(Bitmap.CompressFormat.JPEG, 90, fout);
fout.flush();
fout.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
这是我的社交媒体代码,分享屏幕截图:
Intent socialIntent = new Intent(Intent.ACTION_SEND);
socialIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
Uri uri = Uri.fromFile(new File(mPath));
socialIntent.putExtra(Intent.EXTRA_STREAM, uri);
socialIntent.setType("image/jpeg");
startActivity(Intent.createChooser(socialIntent, "How do you wanna share?"));
答案 0 :(得分:1)
虽然将位图存储在缓存中不是一个好主意,因为会出现内存泄漏问题。但是,您可以执行以下操作来将位图存储在缓存中。
static HashMap<String, Bitmap> cache=new HashMap<String, Bitmap>();
将位图存储到缓存
cache.put(filename,bmp);
稍后,使用以下代码从缓存中检索位图,
if(cache.containsKey(filename)){
imageView.setImageBitmap(cache.get(filename));
}