Центрирование фонового изображения в 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
или любой другой макет, который позволяет дочерним представлениям перекрываться.