Saya mencoba memusatkan bagian ImageView
dalam ke dalam secara LinearLayout
horizontal dan vertikal, tetapi saya tidak bisa melakukannya. Alasan utama mengapa saya tidak menggunakan RelativeLayout
untuk itu adalah karena saya membutuhkan layout_weight
( Activity
terdiri dari empat kolom yang harus dibagi rata, dan juga responsif terhadap lebar layar yang berbeda, setiap kolom memiliki bagian ImageView
tengah dan tidak terentang).
Inilah xml saya sejauh ini:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#000"
android:baselineAligned="false"
android:gravity="center"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".Main" >
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="1" >
<ImageView
android:id="@+id/imageButton_speak"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/image_bg"
android:src="@drawable/ic_speak" />
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="1" >
<ImageView
android:id="@+id/imageButton_readtext"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/image_bg"
android:src="@drawable/ic_readtext" />
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="1" >
<ImageView
android:id="@+id/imageButton_edit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/image_bg"
android:src="@drawable/ic_edit" />
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="1" >
<ImageView
android:id="@+id/imageButton_config"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/image_bg"
android:src="@drawable/ic_config" />
</LinearLayout>
</LinearLayout>
Jawaban:
android:gravity
menangani penyelarasan anak-anaknya,android:layout_gravity
menangani penyelarasan itu sendiri.Jadi gunakan salah satunya.
atau
sumber
android:layout_gravity
digunakan untuk tata letak itu sendiriGunakan
android:gravity="center"
untuk anak-anak AndaLinearLayout
Jadi kode Anda harus:
sumber
Saya mencoba solusi yang disebutkan di sini tapi itu tidak membantu saya. Saya pikir solusinya
layout_width
harus digunakanwrap_content
sebagai nilai.sumber
Ini beberapa contoh kode. Ini berhasil untuk saya.
Jadi Anda mendesain Tata Letak Linear untuk menempatkan semua isinya (TextView dan Tombol) di tengahnya, dan kemudian TextView dan Tombol ditempatkan relatif terhadap pusat Tata Letak Linear.
sumber
android:gravity
dapat digunakan pada Layout untuk menyelaraskan anak-anaknya.android:layout_gravity
dapat digunakan pada tampilan apa pun untuk menyelaraskan diri di induknya.sumber