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

时间:2017-08-22 08:28:31

标签: android image bitmap android-external-storage

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

    }
}

任何帮助将不胜感激。

1 个答案:

答案 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))); 
  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();  
        }  
    });