ПРИМЕЧАНИЕ: у вас также должны быть разные изображения в drawables-hdpi / ldpi и mdpi
аюсь поместить в один рядEditText
сImageView
слева. Но я не могу заставить изображение масштабироваться должным образом, чтобы соответствовать высоте ввода текста.
Макет прост:
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/icon"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:adjustViewBounds="true"
android:scaleType="fitStart"
android:background="#f00"
android:src="@drawable/icon" />
<EditText
android:id="@+id/text"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</LinearLayout>
(Я выделил фон изображения красным цветом, чтобы увидеть фактическое пространство, выделенное ImageView)
Если я укажу точную высоту дляImageView
:
android:layout_height="48dp"
тогда я получаю самое близкое представление, что мне было нужно:
Но я не знаю точную высотуEditText
поэтому я не могу указать это дляImageView
Вот.
Когда высота дляImageView
указывается для заполнения его родителя (чтобы соответствовать высоте `` EditText`):
android:layout_height="fill_parent"
тогда я получаю неожиданный дополнительный запас между изображением и вводом текста:
На самом деле, в этом случаеImageView
ширина равна ширине немасштабированного изображения, тогда как изображение было масштабировано.
Это похоже на изображение, показанное ниже, если я укажуlayout_height
в48dp
и установитьadjustViewBounds
вfalse
:
android:layout_height="48dp"
android:adjustViewBounds="false"
Таким образом, здесь возникает вопрос: как правильно определить макет, чтобы масштабировать изображение в соответствии с высотой редактирования и в то же время иметь ширинуImageView
быть уменьшенным до масштабированной ширины изображения? Другими словами, как избавиться от этого лишнего пространства?