1

ダウンロード時にいくつかの画像をキャッシュしたいのですが、アプリケーションが再び起動したときに、画像がキャッシュされているかどうかを確認し、それ以外の場合は null を返すので、再度ダウンロードしてキャッシュします

LRU キャッシュhttp://developer.android.com/reference/android/util/LruCache.htmlを使用してみましたが、うまくいきませんでした。API レベル 12 で、10 に取り組んでいます。LruCache で画像をキャッシュする質問

キャッシュするための他の簡単に採用可能な解決策は何ですか

4

2 に答える 2

1

大丈夫私はこれが好きでした

        private Bitmap getFile(String fileName) {
        Bitmap file = null;
         try {
              FileInputStream fis; 
              fis = openFileInput(fileName);
              file = BitmapFactory.decodeStream(fis);

              fis.close();
         }
         catch (FileNotFoundException e) {
          e.printStackTrace();
         } catch (IOException e) {
          e.printStackTrace();
         }
        return file;
    }
    protected void putFile(Bitmap bitmap, String fileName){
        FileOutputStream fos;
           try {
            fos = openFileOutput(fileName, Context.MODE_PRIVATE);
            bitmap.compress(Bitmap.CompressFormat.PNG, 100, fos);
            fos.close();
           }    
           catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
               } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
               }
    }
    @Override
    protected String doInBackground(Void... params) {

        for (int i = 0; i < HomeActivity.globalObj.categoriesList.size(); i++) {
            Bitmap b;
            b = getFile(HomeActivity.globalObj.categoriesList.get(i).name);
            if (b == null) {
                b = getImageBitmap(HomeActivity.globalObj.categoriesList.get(i).large_image);
                putFile(b, HomeActivity.globalObj.categoriesList.get(i).name);

            }
            ImageView iv = new ImageView(getApplicationContext());
            iv.setImageBitmap(b);
            imageViewList.add(iv);
        }
于 2012-08-01T06:29:46.997 に答える