Лучший способ использовать растровые изображения в Android;)
Я должен создать приложение для Android для планшетов, приложение будет отображать новые журналы и его страницы. Каждый журнал имеет около 70 страниц, и каждая страница имеет обложку в виде изображения, которое весит около 700 000 байтов. Главная страница приложения показывает большое изображение и небольшую галерею (Gallery View) с изображениями. Я работаю на эмуляторе с Android 3.2. Когда я добавляю изображения в галерею и пытаюсь вставить их, это не работает гладко. Иногда не загружаются все изображения, и LogCat показывает мне эту информацию:
11-17 14:30:51.598: D/skia(5868): libjpeg error 105 < Ss=%d, Se=%d, Ah=%d, Al=%d> from read_scanlines [128 168]
11-17 14:30:51.598: D/skia(5868): --- decoder->decode returned false
Теперь я поместил в галерею около 7 изображений, которые я масштабирую так:
public Bitmap decodeFile(String f) {
try {
BitmapFactory.Options o = new BitmapFactory.Options();
o.inJustDecodeBounds = true;
BitmapFactory.decodeStream(new FileInputStream(f),null,o);
final int REQUIRED_SIZE=75;
int width_tmp=o.outWidth, height_tmp=o.outHeight;
int scale=1;
while(true) {
if(width_tmp/2<REQUIRED_SIZE || height_tmp/2<REQUIRED_SIZE)
break;
width_tmp/=2;
height_tmp/=2;
scale*=2;
}
BitmapFactory.Options o2 = new BitmapFactory.Options();
o2.inSampleSize=scale;
return BitmapFactory.decodeStream(new FileInputStream(f), null, o2);
} catch (FileNotFoundException e) {}
return null;
}
и показать в галерее, как это:
public View getView(int position, View convertView, ViewGroup parent) {
View retval = LayoutInflater.from(parent.getContext()).inflate(R.layout.viewitem, null);
ImageView iV = (ImageView) retval.findViewById(R.id.image);
String path = ArrayHelper.list.get(position).get("pageId").toString();
Bitmap bP = decodeFile(Environment.getExternalStorageDirectory() + "/MCW/" + path + "/head.jpg");
iV.setImageBitmap(bP);
return retval;
}
в будущем у меня будет больше изображений в галерее, и я могу представить, как это будет работать.
Мой вопрос: что я должен делать? Как мне загрузить изображения?
1 ответ
Вы задали общий вопрос, поэтому лучшее, что я могу сделать, это дать вам общий ответ. Вы не должны иметь растровое изображение для всей страницы в журнале. Вы должны использовать только растровые изображения для частей изображения на странице. Остальное должно быть актуальным текстом. Это резко сократит отпечаток вашей памяти. Кроме того, вы должны лениво загрузить эти битовые карты. Зацените это обсуждение для совета о том, как лениво загружать изображения.