2011-09-06 87 views
0

我搜索了许多与我的问题有关的问题。无论如何存储图像在内存中,它应该也出现在画廊?将图像保存到内部存储器,并会出现在画廊

+0

参考如果妳[R有意保存图片到SD卡的话,我会给你的代码为。 –

+0

谢谢,但我已经设置了一个函数来保存图像在SD卡上使用此.. [getExternalStoragePublicDirectory](http://developer.android.com/reference/android/os/Environment.html) 我想知道如果我可以在内部保存图像,然后图像将出现在画廊 – 4ucai

回答

0

您可以将您的内部存储器当作目录并在其上写入文件。示例代码coulde被发现here。从内存加载图像与从目录中读取二进制图像文件相同。然后,您使用decodeByteArray将已读取的文件转换为位图并显示在您的画廊上。

这是another example保存图像和显示在屏幕上(但这是一个在web视图,而不是画廊)。

+0

感谢您的答复,我使用此代码将其内部保存在 – 4ucai

+0

谢谢你的答复,我能够保存图像在内部的“data/data/com.example/files”目录中。 我希望它被扫描以便它出现在手机图库中..我知道内部保存的图像对您的应用程序是私人的。我确实尝试使用“MediaScannerConnection.scanFile”扫描“data/data/com.example/files”目录中的图像。 我正在使用一个模拟器没有SD卡连接,所以我宁愿得到例外或错误,因为手机会在库中创建一个拇指(我认为需要一个外部存储 - sdcard来存储它).. – 4ucai

+0

我想保存图像内部为Android手机没有安装SD卡,用户提示保存图像,他们可以在图库中查看图像。 我也离开了徘徊相机拍摄照片保存在没有SD卡的手机。 – 4ucai

1

这完全有可能,我以前做过。

在将图像保存到内部存储器(或称为应用程序文件夹等)之前,最好设置Context.MODE_WORLDREADABLE。尽管我设置了MODE_PRIVATE,并且在我运行MediaScanner后可以从图库中读取,但我建议您为安全考虑设置MODE_PRIVATE。

您保存到内部存储器图像后,你可以调用MediaScanner这样的:

// call media scanner to refresh gallery 
MediaScannerConnection.scanFile(getApplicationContext(), new String[]{filePath}, null, new MediaScannerConnection.OnScanCompletedListener() { 
    @Override 
    public void onScanCompleted(String path, Uri uri) { 

     Log.i("MediaScanner", "Scanned " + path + ":"); 
     Log.i("MediaScanner", "-> uri=" + uri); 
    } 
}); 

复制/粘贴上面的代码应该工作。然后你的形象将出现在画廊。

Context

相关问题