在Android的图库中如何显示已保存的SD卡图像?
问题描述:
我将图像保存到SD卡中,但未显示在手机的图库中。我可以在文件夹中看到保存的图像,但该文件夹不在库中。在Android的图库中如何显示已保存的SD卡图像?
我的代码在这里,如何修复它?
img_icon.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
img_resim.buildDrawingCache();
Bitmap bm = img_resim.getDrawingCache();
OutputStream fOut = null;
Uri outputFileUri;
try {
root = new File(Environment.getExternalStorageDirectory()
+ File.separator + "folder_name" + File.separator);
root.mkdirs();
File sdImageMainDirectory = new File(root, "myPicName.jpg");
outputFileUri = Uri.fromFile(sdImageMainDirectory);
fOut = new FileOutputStream(sdImageMainDirectory);
} catch (Exception e) {
Toast.makeText(context.getActivity(),
"Error occured. Please try again later.",
Toast.LENGTH_SHORT).show();
}
try {
bm.compress(Bitmap.CompressFormat.PNG, 100, fOut);
fOut.flush();
fOut.close();
} catch (Exception e) {
}
context.getActivity()
.sendBroadcast(
new Intent(
Intent.ACTION_MEDIA_SCANNER_SCAN_FILE,
Uri.parse("file://"
+ Environment
.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES))));
return true;
}
});
return rowView;
}
感谢您的帮助..
答
你的问题就在这里:
context.getActivity()
.sendBroadcast(
new Intent(
Intent.ACTION_MEDIA_SCANNER_SCAN_FILE,
Uri.parse("file://"
+ Environment
.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES))));
你问的Android重新建立索引的所有文件在Environment.DIRECTORY_PICTURES
。
要求扫描整个目录树是很浪费的。在你的情况下,它更浪费,因为你没有将你的文件写入目录。相反,你是该文件写入到:
root = new File(Environment.getExternalStorageDirectory()
+ File.separator + "folder_name" + File.separator);
root.mkdirs();
File sdImageMainDirectory = new File(root, "myPicName.jpg");
因此,您的扫描不会拿起这个文件,你写在外部存储一些随机点。
您需要决定存储文件的适当位置,然后索引即一个文件。
正确关闭手机图库,然后再次启动该手机图库应用程序。 – Jamil 2014-08-29 15:14:43