2011-08-09 11 views
1

私はグラフィックスのトンを含むアプリケーションに取り組んでいます....そのおよそのサイズは80 MBです。アプリケーションはグラフィックをダウンロードします(実際にpng形式のグリーティングカード)私が直面している問題は、これらのグラフィックス(グリーティングカード)をどこに保存すればよいのか、そして内部ストレージやSDカードやSQLiteに保存するかどうかということです....私の質問はアンドロイドにpngイメージを保存する場所と方法

  1. カテゴリに基づいて異なるフォルダに保存する方法。
  2. 更新方法。
  3. これらを取得/アクセスする方法。

    これらの画像のすべての情報はSQLite.Alsoになりますので、私にいくつかのコードを表示してください。

答えて

1

下記の回答。コードの場合は、この場所を検索していくつか試してみて、うまくいけば戻ってください。

  1. サイズは80MBのようなので、外部ストレージに保存することをおすすめします。ディレクトリ構造を作成し、そこに各カテゴリを格納することができます。
  2. アプリケーションにWRITE_EXTERNAL_STORAGE権限を与えてから、あなたのPNGを読み書き/削除/更新する必要があります。
  3. イメージの検索/アクセスには、簡単なファイル操作を使用できます。 SQLiteでは、画像のパスを保存することができます。
0
  1. これは、どのようにストレージを構成するかによって異なります。ユーザーがカテゴリを作成できる場合は、category1に関連するユーザーファイルをcategory1というフォルダに格納します。
  2. 更新すると、新しくダウンロードしたファイルとデータベース内の情報、または実際のファイル自体を比較し、必要に応じて置き換えることができます。または、まずディスク上のファイルとWeb上のファイルを比較し、必要に応じて更新します。
  3. HttpClientを使用してWebから検索/アクセスできます。また、Android ContentManagerを使用して、電話機からの検索/保存に使用できます。あなたはSqliteの画像へのパスを保存するでしょう

コードでは、あなたはほとんど誰にもあなたのコードを与えるつもりはありません。 StackOverflowは、困惑して助けを必要とするときのためのものです。

グーグル:

アンドロイドのHTTPClient
アンドロイドsqliteの
アンドロイドコンテンツプロバイダ

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

    } 
    } 
関連する問題