在android中保存图像时获取图像路径

时间:2012-01-07 07:46:26

标签: android

我使用以下代码将图像保存到SD卡。 但是如何获取已保存图像的图像路径,因为我想在下一个活动中使用此路径为ImageView设置Image。 我尝试使用onActivityResult()但无法获得路径。 由于onActivitySesult()仅在我们想要打开浏览文件的意图时触发,但我想在不打开图库或意图获取文件路径的情况下进行访问。 任何积分都会有所帮助。 期待你的回复。 感谢。

PictureCallback myPictureCallback_JPG = new PictureCallback(){

            @Override
            public void onPictureTaken(byte[] arg0, Camera arg1) {
                // TODO Auto-generated method stub


                 FileOutputStream outStream = null;
                  try {
                    // Write to SD Card
                    outStream = new FileOutputStream(String.format("/sdcard/%d.jpg",System.currentTimeMillis())); 
                    outStream.write(arg0);
                    outStream.close();
                    sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED,Uri.parse("file://"+ Environment.getExternalStorageDirectory())));
                    Toast.makeText(Photo.this, "Image Saved to SD Card", Toast.LENGTH_SHORT).show();
                   System.out.println();
                  } catch (FileNotFoundException e) { 
                    e.printStackTrace();
                    //Log.e("Photo", "Image files get saved in SD Card only",e);
                  } catch (IOException e) {
                    e.printStackTrace();
                  }

                camera.startPreview();
            }};

1 个答案:

答案 0 :(得分:1)

尝试这种方式:

将System.currentTimeMillis()分配给String或long并将其传递给文件输出流。

    try {
        String stored_date=System.currentTimeMillis()+"";
        outStream = new FileOutputStream(String.format("/sdcard/%d.jpg",stored_date)); 
        outStream.write(arg0);
        outStream.close();
        sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED,Uri.parse("file://"+ Environment.getExternalStorageDirectory())));
        Toast.makeText(Photo.this, "Image Saved to SD Card", Toast.LENGTH_SHORT).show();
       System.out.println();
    } catch (FileNotFoundException e) {}
    catch (IOException e) {}