Обновление: Размеры экрана нескольких устройств - это красная селедка - проблема заключается в том, что изображение не масштабируется должным образом, чтобы заполнить экран - см. Комментарии к ответу Ивана.Размер экрана устройства имеет странный эффект при масштабировании ImageViews
У меня есть файл макета с одним изображением:
<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
AVDS:
Edit:
С layout_height = "fill_parent" и scaleType = "centerInside"
У меня есть 2.1 AVD со значениями по умолчанию, так что экран меньше , и это работает точно так, как ожидалось - изображение масштабируется, чтобы заполнить ширину, а высота представления завернута в масштабированную высоту.
На моем Droid Bionic с более длинным экраном, и на любом AVD с теми же размерами экрана, это не работы- изображение масштабируется, чтобы заполнить ширину, но вид заворачивают в оригинальной пре- так что верхняя и нижняя части обрезаны.
Я понятия не имею, почему соотношение сторон экрана устройства повлияет на это. Я пробовал бесчисленное сочетание параметров макета и типов шкалы, пытаясь заставить это работать на Bionic. Все работает точно так, как ожидалось, на меньшем экране, а не на большем. Если я установил высоту изображения явно в dp
, он работает так, как ожидалось, но я никогда не знаю, каковы будут размеры изображения (или экрана). Какие-либо предложения?
Скриншоты могут быть полезны, так как я не совсем уверен, что изображу правильную вещь. – CaseyB
Добавлены скриншоты - это поможет? Меньший экран дает ожидаемые результаты в масштабировании изображения. Чем больше размер, тем меньше размер для масштабирования ImageView. –
Вы уверены, что хотите layout_height = wrap_content? –