我怎么知道我的位图图像保存的位置?

how can i know the location of my bitmap image saved?

我正在尝试在我的应用程序中保存用户的签名。它运行良好,但我找不到这些图像在我的外部存储中的保存位置。 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();

    }
}

任何帮助将不胜感激。

api insertImage 会在系统中插入图片并创建缩略图 相册,但由于缓存的原因,在某些手机上我们需要重启才能看到照片phone。

这里有一个解决方法就是我们可以刷新系统相册。

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))); 
  1. 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();  
        }  
    });