3 Relative Layout
3 Relative Layout
3 Relative Layout
WORLD
RelativeLayout
Android RelativeLayout enables you to specify how child views are positioned relative
to each other. The position of each view can be specified as relative to sibling elements
or relative to the parent.
RelativeLayout Attributes
Attribute Description
android:id This is the ID which uniquely identifies the layout.
android:gravity This specifies how an object should position its content, on
both the X and Y axes. Possible values are top, bottom, left,
right, center, center_vertical, center_horizontal etc.
android:ignoreGravity This indicates what view should not be affected by gravity.
Using RelativeLayout, you can align two elements by right border, or make one below
another, centered in the screen, centered left, and so on. By default, all child views are
drawn at the top-left of the layout, so you must define the position of each view using
the various layout properties available from RelativeLayout.LayoutParams and few of
the important attributes are given below:
Attribute Description
android:layout_above Positions the bottom edge of this view above the
given anchor view ID and must be a reference to
another resource, in the form "@[+]
[package:]type:name"
android:layout_alignBottom Makes the bottom edge of this view match the
bottom edge of the given anchor view ID and
must be a reference to another resource, in the
form "@[+][package:]type:name".
android:layout_alignLeft Makes the left edge of this view match the left
edge of the given anchor view ID and must be a
reference to another resource, in the form "@[+]
[package:]type:name".
android:layout_alignParentBotto If true, makes the bottom edge of this view
m match the bottom edge of the parent. Must be a
boolean value, either "true" or "false".
android:layout_alignParentEnd If true, makes the end edge of this view match
the end edge of the parent. Must be a boolean
value, either "true" or "false".
Example
This example will take you through simple steps to show how to create your own
Android application using Relative Layout. Follow the following steps to modify the
Android application we created in Hello World Example chapter:
Ste Description
p
1 You will use Eclipse IDE to create an Android application and name it as
HelloWorld under a package com.example.helloworld as explained in the Hello
World Example chapter.
2 Modify the detault content of res/layout/activity_main.xml file to include few
widgets in Relative layout.
3 Define required constants in res/values/strings.xml file
4 Run the application to launch Android emulator and verify the result of the
changes done in the aplication.
package com.example.helloworld;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import android.os.Bundle;
import android.app.Activity;
import android.text.format.DateFormat;
import android.view.Menu;
import android.widget.TextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu;
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:paddingLeft="16dp"
android:paddingRight="16dp" >
<EditText
android:id="@+id/name"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/reminder" />
<TextView
android:id="@+id/dates"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_below="@id/name"
android:layout_alignParentLeft="true"
android:layout_toLeftOf="@+id/times" />
<TextView
android:id="@id/times"
android:layout_width="96dp"
android:layout_height="wrap_content"
android:layout_below="@id/name"
android:layout_alignParentRight="true" />
<Button
android:layout_width="96dp"
android:layout_height="wrap_content"
android:layout_below="@id/times"
android:layout_centerInParent="true"
android:text="@string/done" />
</RelativeLayout>
<string name="app_name">HelloWorld</string>
<string name="action_settings">Settings</string>
<string name="reminder">Enter your name</string>
<string name="done">Done</string>
</resources>
Let's try to run our modified Hello World! application we just modified. I assume you
had created your AVD while doing environment setup. To run the app from Eclipse,
open one of your project's activity files and click Run icon from the toolbar. Eclipse
installs the app on your AVD and starts it and if everything is fine with your setup and
application, it will display following Emulator window: