Центрирование фонового изображения в Android

У меня есть фоновое изображение около 100 x 100, которое я хочу центрировать в приложении для Android. Есть ли способ сделать это?

Я думаю, что это очень поможет с изменениями ориентации для простых приложений.

2 ответов


вы можете использовать BitmapDrawable для дела. Создать по центру.xml в :

<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
    android:src="@drawable/your_image"
    android:gravity="center"/>

затем вы можете использовать centered drawable в качестве фона.


вопрос старый, и ответ имеет одну большую слабость - у нас нет возможности изменить размер изображения, это означает, что он полностью зависит от drawable у нас есть.

при использовании новейших библиотек дизайна Android корневой вид деятельности будет CoordinatorLayout или DrawerLayout и эти макеты не имеют представления по умолчанию, отображающего иерархию, это означает, что первое дочернее представление будет затенено любым следующим, а второе-третьим и ... до последнего. Так что в основном мы должны добавить как первый ребенок LinearLayout С центрированным изображением внутри него. Некоторый фрагмент кода:

<android.support.v4.widget.DrawerLayout>
<!-- first child -->
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    >
    <ImageView
        android:layout_width="match_parent"
        android:layout_height="60dp"
        android:src="@drawable/some_background"
        />
</LinearLayout> 
... next view will be above

мы можем полностью настроить размер изображения, который будет центрирован LinearLayout опции гравитации. Важно также иметь присваиваем по ширине и высоте LinearLayout, спасибо, что центр также будет центром родительского представления.

то же самое можно сделать RelativeLayout или любой другой макет, который позволяет дочерним представлениям перекрываться.