Android - How to place a button on a specific position on different screen densities with XML

21,017

Check out the below code which places the button exactly at the middle of the screen :

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >

    <Button 
    android:layout_centerInParent="true" 
    android:text="Button" android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
</RelativeLayout>

If I still want the Button to be a little bit down from the middle, the one good way I know is to use an empty text view as a reference point for the button.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >


    <TextView  android:layout_centerInParent="true" android:layout_width="wrap_content" android:id="@+id/textView1" 
     android:layout_height="wrap_content" android:text=" " ></TextView>
    <Button 
     android:layout_marginTop="5dip"
     android:layout_centerHorizontal="true"
    android:text="Button" android:layout_below="@id/textView1" android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>

</RelativeLayout>

Change the value of android:layout_marginTop="5dip" to your convenience.

Share:
21,017
sandmaster
Author by

sandmaster

Updated on March 12, 2020

Comments

  • sandmaster
    sandmaster about 4 years

    I am looking for a way to place a button on a specific spot with the help of XML.

    I want the button in question to be placed in the middle of the screen, only abit down.

    This I would like to be working even when changing screen densities.

    I have tried using android:layout_marginLeft="10dp", but it doesnt show up at the same position when i lower the densities from 240 till 120. It says on androids dev page that dp should be used and will scale with the screen, which in this case doesnt seem to be.

    Got the following code atm for the button:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/yowie_meny_utan_knappar">
    
    
    <Button
        android:id="@+id/Button04"
        android:layout_width="100dp"
        android:layout_height="73dp"
        android:layout_gravity="center"
        android:layout_marginTop="200dp"
        android:layout_marginLeft="50dp"
        android:background="@drawable/play_button"
        >
      </Button>