2012-10-27 96 views
5

我很新的android开发...我想知道什么是最好的方式来隐藏在android的图像。我有一个应用程序,我拍照,我想要那张照片,只能显示在我的应用程序内。在android中隐藏图像的最佳方法是什么?

+0

你可以尝试以某种方式encripting图像。有报道称.nomedia在4.0以后不起作用。 http://stackoverflow.com/questions/10697276/android-nomedia-not-working-for-images – Doomsknight

+0

在某些api版本中,媒体扫描仪存在一些bug,但.nomedia仍然有效。其中一个错误是,在文件夹中存在一些图像后,创建.nomedia文件会隐藏未来的图像,但不会隐藏未来的图像,但可以通过强制重新扫描所有介质(仅删除其数据和缓存工作) 。解决方案更简单,在开始将文件存储在文件夹中以防止它们被中间人使用之前添加.nomedia文件。这篇文章解决了如何解决这一切。 – ZhDev

回答

3

最好的方法是使用设备的内部存储器。根据开发人员的网站:

您可以直接在设备的内部存储上保存文件。默认情况下,保存到内部存储的文件对您的 应用程序是私有的,其他应用程序无法访问它们( 用户也不能访问它们)。

您可以在这里找到所有的细节:Using the Internal Storage

记住,有一些事情,你应该考虑到;例如,如果您提到的照片是通过照相机拍摄的,则图像必须首先保存在公共文件夹(即外部存储器)中才能使照相机正常工作,然后将其移动到内部存储器(或复制它,然后删除原件)。

还有其他的方法:

  • 您也可以尝试在外部存储 (由他人入店)保存图像,但名称与 文件名前面的句点的文件,以使其不可见,但任何应用程序都可以访问文件,如果他们知道文件名,并且大多数文件管理器可以显示隐藏文件
  • 在文件夹内添加一个“.nomedia”文件以防止该库显示您的图片。
  • 用没有扩展名的随机字符串命名文件。

,如果你想使他们完全无法访问其他应用这要看或者隐藏那么一点点就足够

+0

+1为答案。但我有一点疑问。怀疑已经超出了范围,但希望它会被考虑。 假设我有一个文件,我正在外部存储与文件名前点。这有助于文件不可见,什么是.nomedia文件?它应该在java代码中创建此文件时创建(前面是一个点)吗? –

+0

从答案中使用的相同链接:“在您的外部文件目录中包含一个名为.nomedia的空文件(注意文件名中的点前缀)。这将阻止Android媒体扫描器读取媒体文件并将其包含在应用程序中画廊或音乐“。 基本上在您用来存储图片的顶层文件夹(第一次访问文件夹或创建文件夹)中包含名为.nomedia的单个空白文件,这将阻止图库显示存储在其中的所有图像。 – ZhDev

+1

作为一个额外的评论,(默认)画廊也不显示隐藏的文件,所以如果你所有的文件被命名为“.image1.jpg”,“.image2.jpg”,“.reallyCoolPic.jpg”,他们都隐藏了,你不需要.nomedia文件。 – ZhDev

相关问题