2012-06-20 3 views
0
  • У меня есть ListView, и каждая строка имеет ImageView.
  • Эти изображения загружаются в отдельный поток, а затем добавляются в ImageViews в потоке пользовательского интерфейса.
  • Изображения, которые я загружаю, являются 92 X 136 px. Я масштабирую эти изображения до 50 X 100 пикселей каждый, используя BitmapFactory.
  • Я хочу, чтобы эти изображения выглядели одинаково по разным экранам. Я понимаю, что на экране с более высокой плотностью эти изображения могут выглядеть меньше, а у людей с меньшей плотностью они могут выглядеть больше.
  • Обычно мы помещаем такие изображения в папки mdpi, hdpi etc, но в этом случае изображения загружаются динамически и масштабируются программно.Отображение растровых изображений для разных экранов android

    Может кто-нибудь указать мне в правильном направлении относительно того, что я должен делать. Я не нужны никакие коды .. только некоторые алго должны делать ...

ответ

0

Один из способов заключаются в масштабе в DP так:

int height = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, <HEIGHT>, getResources().getDisplayMetrics()); 

Другой способ заключается Кодируют размеры на ImageView в дпе или назначить ширин его высоту programaticaly после получения метрики экрана и вычисления некоторого процента ширина/высота для заполнения (хотя я думаю, что использование только фиксированного dp в макете будет достаточно, при необходимости вы можете использовать значения/размеры, чтобы отметить размер представления). И присвойте scaleType, например fitXY или centerCrop, к изображению, чтобы заполнить всю область содержимого.

0

Может определить размер этого ImageView в XML в папке для правильной плотности и установить там scalingType свойство как fitXY?

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