私はリニアレイアウトを使ってかなり明るい初期画面を表示しています。水平方向と垂直方向の両方で画面の中央に配置されることになっている1つのボタンがあります。しかし、ボタンを何にしようとしても、中央揃えになります。以下のXMLを含めましたが、正しい方向を向いている人もいますか?
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:orientation="vertical"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent">
<ImageButton Android:id="@+id/btnFindMe"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_gravity="center_vertical|center_horizontal"
Android:background="@drawable/findme"></ImageButton>
</LinearLayout>
項目を画面の中央に配置したい場合は、LinearLayout
を使用しないでください。これらは1行に多数の項目を表示するためのものです。
代わりに RelativeLayout
を使用してください。
だから交換してください:
Android:layout_gravity="center_vertical|center_horizontal"
関連するRelativeLayout
オプションの場合:
Android:layout_centerInParent="true"
そのため、レイアウトファイルは次のようになります。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout Android:id="@+id/RelativeLayout01"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
xmlns:Android="http://schemas.Android.com/apk/res/Android">
<ImageButton Android:id="@+id/btnFindMe"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_centerInParent="true"
Android:background="@drawable/findme"></ImageButton>
</RelativeLayout>
LinearLayoutを使用してセンタリングします。
<LinearLayout
Android:id="@+id/LinearLayout1"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:gravity="center"
Android:orientation="vertical" >
<ImageButton
Android:id="@+id/btnFindMe"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:background="@drawable/findme" />
</LinearLayout>
レイアウト内でAndroid:gravity="center_vertical|center_horizontal"
を定義し、画像内でAndroid:layout_weight="1"
を設定してみましたか?
線形レイアウトで機能する一般的に使用される方法は、画像ボタンにプロパティを設定することです。
Android:layout_gravity="center"
線形レイアウトの各オブジェクトを左揃え、中央揃え、または右揃えにするかを選択できます。上記の行は、まったく同じです。
Android:layout_gravity="center_vertical|center_horizontal"
これを追加
Android:gravity="center"
LinearLayoutでは。
これで簡単
<LinearLayout
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:layout_weight="1"
Android:visibility="visible"
Android:gravity="center"
Android:orientation="vertical" >
<ProgressBar
Android:id="@+id/pbEndTrip"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_gravity="center"
/>
<TextView
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_marginTop="10dp"
Android:gravity="center"
Android:text="Gettings" />
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:orientation="vertical"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent">
<ImageButton Android:id="@+id/btnFindMe"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_gravity = "center"
Android:background="@drawable/findme">
</ImageButton>
</LinearLayout>
上記のコードは動作します。
あなたはRelativeLayout
を使うことができます。
Android:layout_gravity のXML属性に関するAndroidのドキュメントによれば、私たちはそれを簡単に行うことができます:)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:orientation="vertical"
Android:layout_width="match_parent"
Android:layout_height="match_parent">
<ImageButton Android:id="@+id/btnFindMe"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_gravity="center"
Android:background="@drawable/findme"></ImageButton>
</LinearLayout>
あなたがLinearLayout
を使うなら、あなたは重心を加えることができます:
<LinearLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:orientation="vertical"
Android:gravity="center">
<Button
Android:layout_width="200dp"
Android:layout_height="wrap_content"
/>
</LinearLayout>`
私のマシンからの完全で実用的なサンプル...
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:tools="http://schemas.Android.com/tools"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:paddingLeft="@dimen/activity_horizontal_margin"
Android:paddingRight="@dimen/activity_horizontal_margin"
Android:paddingTop="@dimen/activity_vertical_margin"
Android:paddingBottom="@dimen/activity_vertical_margin"
Android:orientation="vertical"
tools:context=".MainActivity"
Android:gravity="center"
Android:textAlignment="center">
<TextView
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:textAppearance="?android:attr/textAppearanceLarge"
Android:text="My Apps!"
Android:id="@+id/textView"
Android:gravity="center"
Android:layout_marginBottom="20dp"
/>
<Button
Android:layout_width="220dp"
Android:layout_height="wrap_content"
Android:text="SPOTIFY STREAMER"
Android:id="@+id/button_spotify"
Android:gravity="center"
Android:layout_below="@+id/textView"
Android:padding="20dp"
/>
<Button
Android:layout_width="220dp"
Android:layout_height="wrap_content"
Android:text="SCORES"
Android:id="@+id/button_scores"
Android:gravity="center"
Android:layout_below="@+id/textView"
Android:padding="20dp"
/>
<Button
Android:layout_width="220dp"
Android:layout_height="wrap_content"
Android:layout_centerInParent="true"
Android:text="LIBRARY APP"
Android:id="@+id/button_library"
Android:gravity="center"
Android:layout_below="@+id/textView"
Android:padding="20dp"
/>
<Button
Android:layout_width="220dp"
Android:layout_height="wrap_content"
Android:layout_centerInParent="true"
Android:text="BUILD IT BIGGER"
Android:id="@+id/button_buildit"
Android:gravity="center"
Android:layout_below="@+id/textView"
Android:padding="20dp"
/>
<Button
Android:layout_width="220dp"
Android:layout_height="wrap_content"
Android:layout_centerInParent="true"
Android:text="BACON READER"
Android:id="@+id/button_bacon"
Android:gravity="center"
Android:layout_below="@+id/textView"
Android:padding="20dp"
/>
<Button
Android:layout_width="220dp"
Android:layout_height="wrap_content"
Android:layout_centerInParent="true"
Android:text="CAPSTONE: MY OWN APP"
Android:id="@+id/button_capstone"
Android:gravity="center"
Android:layout_below="@+id/textView"
Android:padding="20dp"
/>
</LinearLayout>
Buttonで、Android:layout_alignParentTop="true"
とAndroid:layout_centerHorizontal="true"
をtrueに設定します。
<RelativeLayout 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"
>
<Button
Android:id="@+id/switch_flashlight"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="@string/turn_on_flashlight"
Android:textColor="@Android:color/black"
Android:onClick="action_trn"
Android:background="@Android:color/holo_green_light"
Android:layout_alignParentTop="true"
Android:layout_centerHorizontal="true"
Android:padding="5dp" />
</RelativeLayout>
LinearLayoutの幅をwrap_content
に設定し、Android:layout_centerInParent
、Android:layout_centerVertical="true"
を使用することもできます。
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:orientation="vertical"
Android:layout_width="wrap_content"
Android:layout_height="fill_parent"
Android:layout_centerInParent="true"
Android:layout_centerHorizontal="true"
Android:layout_centerVertical="true"
>
<ImageButton Android:id="@+id/btnFindMe"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:background="@drawable/findme"/>
そのまま使用する(レイアウトの中央に配置する)
Android:layout_gravity="center"
そして使う
Android:layout_marginBottom="80dp"
Android:layout_marginTop="80dp"
位置を変更する
また、このコードを試すことができます:
<LinearLayout
Android:id="@+id/linear_layout"
Android:layout_width="fill_parent"
Android:layout_height="0dp"
Android:layout_gravity="center"
Android:orientation="horizontal"
Android:weightSum="2.0"
Android:background="@drawable/anyBackground" >
<LinearLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_gravity="center"
Android:orientation="vertical"
Android:layout_weight="1" >
<ImageView
Android:id="@+id/img_mail"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_gravity="center"
Android:background="@drawable/yourImage" />
</LinearLayout>
<LinearLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_gravity="center"
Android:orientation="vertical"
Android:layout_weight="1" >
<ImageView
Android:id="@+id/img_save"
Android:layout_width="wrap_content"
Android:layout_height="match_parent"
Android:layout_gravity="center"
Android:background="@drawable/yourImage" />
</LinearLayout>
</LinearLayout>