Я пытаюсь разместить в одной строке 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
сокращалась до масштабированной ширины изображения? Другими словами, как избавиться от лишнего пространства?