Centrowanie obrazu tła w systemie Android
Mam obraz tła około 100 x 100, które chcę wyśrodkować w aplikacji na Androida. Jest na to sposób?
Myślę, że bardzo pomogłoby to przy zmianach orientacji w prostych aplikacjach.
2 answers
Możesz użyć BitmapDrawable dla sprawy. Utwórz wyśrodkowane.xml w folderze res/drawable
:
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/your_image"
android:gravity="center"/>
Następnie możesz użyć centered
drawable jako tła.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-10-03 12:21:47
Pytanie jest stare i odpowiedź ma jedną dużą słabość - nie mamy możliwości zmiany rozmiaru obrazu, to znaczy, że w pełni zależy od tego, co mamy.
Podczas korzystania z najnowszych bibliotek projektowych Androida głównym widokiem aktywności będzie CoordinatorLayout
lub DrawerLayout
i te układy nie mają domyślnego widoku pokazującego hierarchię, oznacza to, że pierwszy widok potomny będzie przesłonięty przez następny, a drugi przez trzeci i ... za ostatnie. Aby mieć wyśrodkowane tło musimy dodać jako pierwsze dziecko LinearLayout
z wyśrodkowany obraz w środku. Jakiś fragment kodu:
<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
Możemy w pełni dostosować rozmiar obrazu, który będzie wyśrodkowany przez opcję grawitacji LinearLayout
. Ważne jest również, aby mieć match_parent na szerokości i wysokości LinearLayout
, dzięki temu centrum będzie również centrum widoku rodzica.
To samo można zrobić w RelativeLayout
lub w dowolnym innym układzie, który umożliwia nakładanie się widoków potomnych.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-22 00:05:21