Размер экрана устройства странным образом влияет на масштабируемые ImageView.

Обновление: Множественные размеры экрана устройства - отвлекающий маневр - проблема только в том, что изображение не масштабируется должным образом, чтобы заполнить экран - см. Комментарии к ответу Ивана.

У меня есть файл макета с одним изображением:

<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/image"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:adjustViewBounds="true"
    android:scaleType="centerCrop" />

Затем я назначаю объект для рисования, который имеет небольшой размер и должен быть увеличен в масштабе:

setContentView(R.layout.image_story);
ImageView image = (ImageView)findViewById(R.id.image);
image.setImageDrawable(s.image);

Вот как он отображается на двух AVD с разными размерами экрана. Они должны быть одинаковыми (подробный вопрос внизу). Извините за большие изображения.

с scaleType = centerCrop:

с centerInside

AVD:

Edit:

С layout_height = "fill_parent" и scaleType = "centerInside"

У меня есть AVD 2.1 со значениями по умолчанию , поэтому экран меньше, и это работает точно так, как ожидалось - изображение масштабируется, чтобы заполнить ширину, а высота просмотра оборачивается до масштабированной высоты.

На моем Droid Bionic с более длинным экраном и на любом AVD с такими же размерами экрана это не работает - изображение масштабируется по всей ширине, но вид преобразуется в исходный ] предварительно масштабирует высоту изображения, поэтому верх и низ обрезаются.

Я понятия не имею, почему соотношение сторон экрана устройства может на это повлиять. Я пробовал бесчисленное количество комбинаций параметров макета и типов масштабов, пытаясь заставить это работать на Bionic.На меньшем экране все работает точно так, как ожидалось, а не на большом. Если я явно установил высоту изображения в dp , он будет работать, как ожидалось, но я никогда не знаю, каковы будут размеры изображения (или экрана). Есть предложения?

6
задан Rob Lourens 14 February 2012 в 21:23
поделиться