我正在尝试在我的应用中保存用户的签名。它运作良好,但我无法找到这些图像保存在外部存储器中的位置。 this是我的应用的外观
以下是代码
public void saveSig(View view) {
try {
GestureOverlayView gestureView = (GestureOverlayView) findViewById(R.id.signaturePad);
gestureView.setDrawingCacheEnabled(true);
Bitmap bm = Bitmap.createBitmap(gestureView.getDrawingCache());
File f = new File(Environment.getExternalStorageDirectory()
+ File.separator + "signature.png");
f.createNewFile();
FileOutputStream os = new FileOutputStream(f);
os = new FileOutputStream(f);
//compress to specified format (PNG), quality - which is ignored for PNG, and out stream
bm.compress(Bitmap.CompressFormat.PNG, 100, os);
os.close();
MediaStore.Images.Media.insertImage(getContentResolver(),f.getAbsolutePath(),f.getName(),f.getName());
}
catch (Exception e) {
Log.v("Gestures", e.getMessage());
e.printStackTrace();
}
}
任何帮助将不胜感激。
答案 0 :(得分:0)
api insertImage将插入图像并在系统中创建缩略图 相册,但由于缓存,在某些手机中我们无法看到照片,直到我们重启手机。
这是一个解决方案,我们可以刷新系统相册。
1
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://"+ Environment.getExternalStorageDirectory())));
或(高效率)
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://"+ Environment.getExternalStorageDirectory()+ picPath)));
final MediaScannerConnection msc = new MediaScannerConnection(mContext, new MediaScannerConnectionClient() {
public void onMediaScannerConnected() {
msc.scanFile("/sdcard/image.jpg", "image/jpeg");
}
public void onScanCompleted(String path, Uri uri) {
msc.disconnect();
}
});