ПРИМЕЧАНИЕ: у вас также должны быть разные изображения в 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 быть уменьшенным до масштабированной ширины изображения? Другими словами, как избавиться от этого лишнего пространства?

Ответы на вопрос(2)

Ваш ответ на вопрос