The purpose of layout is to arrange the various components within itself according to a particular scheme and the LinearLayout is the simplest of layout which is proposed by default when you create an Android project.
- Create a new Android project
- Edit the file res/layout/main.xml:
12345678910111213141516171819202122232425262728293031323334353637<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical" ><TextViewandroid:id="@+id/textView1"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_weight="1"android:gravity="top|left"android:background="@color/yellow"android:text="@string/label1"/><TextViewandroid:id="@+id/textView1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="2"android:layout_gravity="center"android:gravity="center"android:background="@color/green"android:layout_margin="50px"android:text="@string/label2"/><TextViewandroid:id="@+id/textView1"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_weight="3"android:gravity="bottom|right"android:padding="50px"android:background="@color/fuchsia"android:text="@string/label3"/></LinearLayout> - Edit the file res/values/strings.xml:
12345678910<?xml version="1.0" encoding="utf-8"?><resources><string name="hello">Hello World, LinearLayoutTutorialActivity!</string><string name="app_name">LinearLayoutTutorial</string><string name="label1">one</string><string name="label2">two</string><string name="label3">three</string></resources> - Create the file res/values/colors.xml:
123456<?xml version="1.0" encoding="utf-8"?><resources><color name="yellow">#FFFF00</color><color name="fuchsia">#FF00FF</color><color name="green">#008000</color></resources> - Verify that the main class has the method:
1234public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);}
The end result seen by the emulator is as follows:
The Linearlayout arrange the components in or portrait or landscape orientation, you can verify this aspect replacing android: orientation = “vertical” with android: orientation = “vertical”in the file main.xml.
The dimensions of the components are mainly determined by android:layout_width and layout_height whose values can be set to:
- fill_parent: the component fills all available space (deprecated)
- match_parent: the component fills all available space
- wrap_content: the component gets enough space to show their contents
- [a number]: specify an exact number in px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), in (inches), mm (millimeters)
The dimensions of the components can be increased or decreased value to android:layout_weight, and the components for which a value is specified for android:layout_weight have relative size proportionate to that value.
android:layout_gravity e android:gravity set similar characteristics but on different objects:
- android:layout_gravity: sets the positioning of the component relative to the layout
- android:gravity: sets the positioning of the body of the component relative to the same component.
You can specify multiple values separated by the character “|”, for example: android:gravity=”bottom|center”.
android:padding sets the distance between the body of the component and the edge of the component.
android:layout_margin sets the distance between the component from the edge of the layout or other elements.
android:padding e android:layout_margin can also be set for layout.