2 csh 34 csh_34 于 2013.03.13 10:32 提问

在 Android 中保存图像获得图像的路径

我使用下面的代码把一个图像保存到SD card中,但是如何获得保存了的图像的路径,因为我想使用这个路径给下一个 activity 中的 ImageView 设置图像。
我试着使用onActivityResult(),但是不能获得路径。因为如果你想在浏览器文件夹中打开一个 intent,onActivitySesult()会被摧毁,但是我不想打开 gallery 或者 intent,就能访问获取文件路径。 请大家帮忙解决这个问题,谢谢。

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

2个回答

yongyong_21
yongyong_21   2013.03.13 14:13
已采纳

指定 System.currentTimeMillis() 为 String 或 long,然后传递到 File Outputstream 中。

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) {}
tangren03
tangren03   2013.03.16 18:24

可以借助SharedPreference保存路径或者借助数据库保存。建议参考:Android相机、相册获取图片显示并保存到SD卡

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
C++ 上传显示图像与保存图像
点击上传图像按钮,选择图片,将图片显示到图像控件(static)中,点击保存按钮,选择保存路径将图像保存到指定路径,点击退出按钮,退出系统。
QT关于图片打开,另存为,保存到指定位置操作
QT关于图片打开,另存为,保存到指定位置操作在头文件mainwindow.h中先声明以下类:#include <QImage> #include <QPixmap> #include <QFileDialog> #include <QMessageBox> #include <QScreen> #include <QGuiAppli...
怎样把图像保存到指定的路径里
这是canny边缘检测对图像提取边缘 clear; close all filename=dir('D:\My Documents\MATLAB\Dicom\05\*.dcm');%图像存放的目录 for i=1:length(filename)   if i>2 %只显示前2副     break;   else     I=dicomread(filename(i).name)
matlab自带图像所在路径
C:\Program Files\MATLAB\R2010*\toolbox\images\imdemos (matlab的相应的安装路径)
获得图像大小的源代码资源
获得图像大小 获得图像大小 获得图像大小获得图像大小 获得图像大小 获得图像大小
cvSaveImage()保存图像到指定文件
int cvSaveImage( const char* filename, const CvArr* image ); 图像格式的的选择依赖于filename的扩展名,请参考cvLoadImage,只有8位单通道或者3通道(通道顺序为'BGR' )可以使用这个函数保存。 如果格式,深度或者通道不符合要求,请先用cvCvtScale和cvCvtColo转换;或者使用通用的cvS
android对图像的操作
android图像操作,图像保存,翻转,改变大小,等
matlab批量保存图像至指定文件夹(revised) mkdir cd 等
把上一篇文章(点这里进入)修改了一下,可以批量保存至指定文件夹 使用到的关键语句为 mkdir 创建文件夹 cd       获得当前work directory的字符串 cd  D:\test   进入 D:\test 文件夹 imwrite也可以用saveas代替
图像处理保存图片保存效果
数字图像的形式图像出来,图像的保存,根据自己的需求改路径,图像效果保存,可以在你的图像处理中途保存,下次继续操作!
No.2_2 FreeImage——加载/存储图像
FreeImage 是一款免费的开源图形库,它可以用于 Windows,Linux 和 Mac OS X 系统。该程序将图像文件转换为字节流存入二进制文件,在把二进制文件转换为图像文件。