2012-10-27 133 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

相關問題