Я считаю, что android:gravity
атрибуты, которые вы ищете являются clip_vertical
и clip_horizontal
, но слово советы. Эти атрибуты могут вести себя не так, как вам кажется. Вы не можете использовать их для клипа изображения в обоих направлениях, только один. Следующий код:
<bitmap
android:src="@drawable/background"
android:gravity="clip_vertical|clip_horizontal" />
не позволяет изображению быть обрезаны в обоих направлениях ... это на самом деле подходит изображение внутри зрения, как если бы вы не ставили ни один. Также может сбивать с толку, что установка параметра клипа по существу устанавливает это направление в соответствии с представлением, а другое направление обрезается. Несколько примеров:
<!-- Force fit top/bottom, crop left/right with image centered -->
<bitmap
android:src="@drawable/background"
android:gravity="clip_vertical" />
<!-- Force fit top/bottom, align image left and crop right edge -->
<bitmap
android:src="@drawable/background"
android:gravity="left|clip_vertical" />
<!-- Force fit left/right, crop top/bottom with image centered -->
<bitmap
android:src="@drawable/background"
android:gravity="clip_horizontal" />
<!-- Force fit left/right, align top and crop bottom egde -->
<bitmap
android:src="@drawable/background"
android:gravity="top|clip_horizontal" />
Обратите внимание, что эти настройки позволяют изображения больше, чем вид, чтобы быть обрезаны, но если изображение меньше, чем вид, его содержание по-прежнему будет растягиваться, чтобы соответствовать. Чтобы управлять тем, как изображение будет вести себя в теге <bitmap>
, когда оно меньше, чем вид, посмотрите на tileMode
. Обратите внимание, что tileMode
и gravity
не могут использоваться вместе; gravity
будет проигнорирован, если оба включены.
Если вам нужен больше динамического контроль как изображение весов в дополнении к этому, и вы не хотите использовать ImageView
, вы можете также обернуть получившуюся вытяжку в ScaleDrawable
и настроить х/у шкалы процентов в Java код, основанный на измеренных размерах просмотра.
Вы должны выбрать ответ, это поможет другим, которые приходят сюда искать ответ –