В моем приложении задано количество изображений, требующих кеширования. Это примерно 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);
}
}
Мой вопрос, это плохой способ сделать это? Я попытался найти хорошие учебники по кешированию в Интернете, но мне было трудно найти полный учебник, который действительно объяснил это правильно. Метод, который я использую, кажется довольно простым, но не уверен, что он рекомендуется.
Был бы признателен, если бы кто-нибудь мог сказать мне, что за плюсы и минусы делает это по-моему, и должен ли я переходить к другому методу.
Благодаря
Если у вас нет проблем с вашим кодом, но просто хочу спросить мнение других, то лучше разместить свой вопрос на [ Code Review website] (http://codereview.stackexchange.com) – THelper
Не видели эту ссылку раньше, сделаете это в будущем – AdamM