Android - UI Layouts
Android - UI Layouts
Android - UI Layouts
The basic building block for user interface is a View object which is created from the
View class and occupies a rectangular area on the screen and is responsible for drawing
and event handling. View is the base class for widgets, which are used to create
interactive UI components like buttons, text fields, etc.
The ViewGroup is a subclass of View and provides invisible container that hold other
Views or other ViewGroups and define their layout properties.
At third level we have different layouts which are subclasses of ViewGroup class and a
typical layout defines the visual structure for an Android user interface and can be
created either at run time using View/ViewGroup objects or you can declare your
layout using simple XML file main_layout.xml which is located in the res/layout folder
of your project.
Layout params
This tutorial is more about creating your GUI based on layouts defined in XML file. A
layout may contain any type of widgets such as buttons, labels, textboxes, and so on.
Following is a simple example of XML file having LinearLayout −
https://www.tutorialspoint.com/android/android_user_interface_layouts.htm 1/6
Page 2 of 6
<TextView android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="This is a TextView" />
<Button android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="This is a Button" />
</LinearLayout>
Once your layout has created, you can load the layout resource from your application
code, in your Activity.onCreate() callback implementation as shown below −
Linear Layout
1 LinearLayout is a view group that aligns all children in a single direction,
vertically or horizontally.
Relative Layout
2
RelativeLayout is a view group that displays child views in relative positions.
Table Layout
3
TableLayout is a view that groups views into rows and columns.
Absolute Layout
4
AbsoluteLayout enables you to specify the exact location of its children.
https://www.tutorialspoint.com/android/android_user_interface_layouts.htm 2/6
Page 3 of 6
Frame Layout
5 The FrameLayout is a placeholder on screen that you can use to display a
single view.
List View
6
ListView is a view group that displays a list of scrollable items.
Grid View
7 GridView is a ViewGroup that displays items in a two-dimensional, scrollable
grid.
Layout Attributes
Each layout has a set of attributes which define the visual properties of that layout.
There are few common attributes among all the layouts and their are other attributes
which are specific to that layout. Following are common attributes and will be applied to
all the layouts:
android:id
1
This is the ID which uniquely identifies the view.
android:layout_width
2
This is the width of the layout.
android:layout_height
3
This is the height of the layout
android:layout_marginTop
4
This is the extra space on the top side of the layout.
android:layout_marginBottom
5
This is the extra space on the bottom side of the layout.
android:layout_marginLeft
6
This is the extra space on the left side of the layout.
android:layout_marginRight
7
This is the extra space on the right side of the layout.
android:layout_gravity
8
This specifies how child Views are positioned.
android:layout_weight
9 This specifies how much of the extra space in the layout should be allocated to
the View.
https://www.tutorialspoint.com/android/android_user_interface_layouts.htm 3/6
Page 4 of 6
android:layout_x
10
This specifies the x-coordinate of the layout.
android:layout_y
11
This specifies the y-coordinate of the layout.
android:layout_width
12
This is the width of the layout.
android:paddingLeft
13
This is the left padding filled for the layout.
android:paddingRight
14
This is the right padding filled for the layout.
android:paddingTop
15
This is the top padding filled for the layout.
android:paddingBottom
16
This is the bottom padding filled for the layout.
Here width and height are the dimension of the layout/view which can be specified in
terms of dp (Density-independent Pixels), sp ( Scale-independent Pixels), pt ( Points
which is 1/72 of an inch), px( Pixels), mm ( Millimeters) and finally in (inches).
You can specify width and height with exact measurements but more often, you will use
one of these constants to set the width or height −
Gravity attribute plays important role in positioning the view object and it can take one
or more (separated by '|') of the following constant values.
https://www.tutorialspoint.com/android/android_user_interface_layouts.htm 4/6
Page 5 of 6
Explore our latest online courses and learn new skills at your own pace. Enroll and
become a certified expert to boost your career.
View Identification
https://www.tutorialspoint.com/android/android_user_interface_layouts.htm 5/6
Page 6 of 6
A view object may have a unique ID assigned to it which will identify the View uniquely
within the tree. The syntax for an ID, inside an XML tag is −
android:id="@+id/my_button"
The at-symbol (@) at the beginning of the string indicates that the XML parser
should parse and expand the rest of the ID string and identify it as an ID
resource.
The plus-symbol (+) means that this is a new resource name that must be
created and added to our resources. To create an instance of the view object and
capture it from the layout, use the following −
https://www.tutorialspoint.com/android/android_user_interface_layouts.htm 6/6