2012-05-01 2 views
0

В моем приложении задано количество изображений, требующих кеширования. Это примерно 12-15 изображений, которые мне понадобятся кешированные вершины. То, что я сделал, это сохранить изображение в файле в каталоге на устройстве, подобном этому.Метод кеширования Android

FileOutputStream o = new FileOutputStream(getFilesDir().getAbsolutePath() 
       + "/background.txt"); 
     Bitmap b = getBitmapFromURL("http://10.84.4.2:8083/images/General/background.png"); 
     b.compress(Bitmap.CompressFormat.PNG, 90, o); 

Тогда просто загрузите изображение, когда мне это нужно, как этот

BitmapDrawable bg = new BitmapDrawable(BitmapFactory.decodeFile(c 
       .getFilesDir().getAbsolutePath() + "/background.txt")); 

загрузить изображения сразу с помощью асинхронная Task как этот

public class DownloadImagesTask extends AsyncTask<String, String, Bitmap> 
{ 

    Bitmap bmp; 
    String name; 

    @Override 
    protected Bitmap doInBackground(String... urls) 
    { 
     name = urls[1]; 
     return download_Image(urls[0]); 
    } 

    @Override 
    protected void onPostExecute(Bitmap result) 
    { 
     try 
     { 

      FileOutputStream o = new FileOutputStream(getFilesDir() 
        .getAbsolutePath() + name); 
      result.compress(Bitmap.CompressFormat.PNG, 90, o); 
     } catch (Exception e) 
     { 
      e.printStackTrace(); 
     } 

    } 

    private Bitmap download_Image(String url) 
    { 
     return bmp = getBitmapFromURL(url); 

    } 

} 

Мой вопрос, это плохой способ сделать это? Я попытался найти хорошие учебники по кешированию в Интернете, но мне было трудно найти полный учебник, который действительно объяснил это правильно. Метод, который я использую, кажется довольно простым, но не уверен, что он рекомендуется.

Был бы признателен, если бы кто-нибудь мог сказать мне, что за плюсы и минусы делает это по-моему, и должен ли я переходить к другому методу.

Благодаря

+0

Если у вас нет проблем с вашим кодом, но просто хочу спросить мнение других, то лучше разместить свой вопрос на [ Code Review website] (http://codereview.stackexchange.com) – THelper

+0

Не видели эту ссылку раньше, сделаете это в будущем – AdamM

ответ

Смежные вопросы