Обновление: Множественные размеры экрана устройства - отвлекающий маневр - проблема только в том, что изображение не масштабируется должным образом, чтобы заполнить экран - см. Комментарии к ответу Ивана.
У меня есть файл макета с одним изображением:
<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
, он будет работать, как ожидалось, но я никогда не знаю, каковы будут размеры изображения (или экрана). Есть предложения?