2011-08-09 64 views
1

我的工作,這將包含萬噸圖形的應用....它的尺寸大約爲80 MB.Application將下載的圖形(PNG格式賀卡實際上)從我面對網絡的服務。問題第一次啓動是在哪裏保存這些圖形(賀卡),以及如何???是否將它們保存在內部存儲或SD卡或SQLite的....我的問題是在哪裏以及如何存儲PNG圖像在Android應用程序

  1. 如何根據其類別將它們存儲在不同的文件夾中。
  2. 如何更新它們。
  3. 如何檢索/訪問它們。

    這些圖像的所有信息將在SQLite.Also請給我一些代碼。下面

回答

1

答案。對於代碼,你應該搜索這個地方,嘗試一些東西,如果它不起作用,就回來。

  1. 由於尺寸爲80MB,我建議您將其存儲在外部存儲器中。您可以創建目錄結構並在其中存儲每個類別。
  2. 您需要將WRITE_EXTERNAL_STORAGE權限授予您的應用程序,然後才能讀取/寫入/刪除/更新您的png。
  3. 簡單文件操作可用於檢索/訪問圖像。在SQLite中,您可以存儲圖像的路徑。
0
  1. 這完全取決於您想如何構建存儲。如果用戶可以創建類別,請將與category1相關的用戶文件存儲在名爲category1的文件夾中。
  2. 更新它們會將新下載的文件與數據庫中的信息或實際文件本身進行比較,並在必要時進行替換。或者先將您的磁盤上的文件與網絡上的文件進行比較,然後根據需要進行更新。
  3. 你可以使用一個HttpClient的檢索/從網絡訪問他們,也許在Android ContentManager存儲/從手機檢索它們。你將存儲在Sqlite中的圖像的路徑

就代碼而言,你幾乎不會在這裏找到任何人只是要給你codez。 StackOverflow適用於當你被困住並需要幫助時。

谷歌:

的Android HttpClient的
的android源碼
Android的內容提供商

1

使用下面的代碼。

public class ImageDownload { 

    public static void downloader(String imageURL, String fileName) { 
      try { 
        URL url = new URL("http://www.exampleurl.com/" + imageURL); 
        File file = new File(fileName); 


        URLConnection con = url.openConnection(); 

        InputStream is = con.getInputStream(); 
        BufferedInputStream bis = new BufferedInputStream(is); 

        ByteArrayBuffer baf = new ByteArrayBuffer(50); 
        int current = 0; 
        while ((current = bis.read()) != -1) { 
          baf.append((byte) current); 
        } 

        FileOutputStream fos = new FileOutputStream(file); 
        fos.write(baf.toByteArray()); 
        fos.close(); 

      } catch (IOException e) { 
        Log.d("Downloader", "Error: " + e); 
      } 

    } 
    } 
相關問題