Android - Layouts

Objective #1: Use Layouts to to design an effective user interface.

public void onCreate(Bundle savedInstanceState)
{
   super.onCreate(savedInstanceState);
   setContentView(R.layout.activity_main);
}

In this example, the XML layout code for this activity is found in an XML file named activity_main.xml. Note that the .xml file extension is not typed as part of the setContentView parameter.

Objective #2: Use a LinearLayout.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">

<TextView
android:text="Fahrenheit to Celsius Converter"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />

<TextView
android:text="Enter Fahrenheit Temperature:"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />

<EditText
android:id="@+id/etFahrenheit"
android:width="100px"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />

<Button
android:id="@+id/btnCompute"
android:text="Compute"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />

<Button
android:id="@+id/btnReset"
android:text="Reset"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />


<TextView
android:text="The equivalent Celsius temperature is:"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />

<TextView
android:id="@+id/tvCelsius"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />

</LinearLayout>

Objective #3: Use a TableLayout.


<?xml version="1.0" encoding="utf-8"?>

<TableLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/table1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:shrinkColumns="*"
android:stretchColumns="*">

<TableRow
android:id="@+id/row1"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:gravity="center_horizontal">

<TextView
android:id="@+id/tv11"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textStyle="bold"
android:textSize="18dp"
android:text="Row 1 spans all 6 columns"
android:gravity="center"
android:layout_span="6" />

</TableRow>

<TableRow
android:id="@+id/row2"
android:layout_height="wrap_content"
android:layout_width="match_parent">

<TextView
android:id="@+id/tv21"
android:text="row 2 col 1" />

<TextView
android:id="@+id/tv22"
android:text="row 2 col 2" />

<TextView
android:id="@+id/tv23"
android:text="row 2 col 3" />

<TextView
android:id="@+id/tv24"
android:text="row 2 col 4" />

<TextView
android:id="@+id/tv25"
android:text="row 2 col 5" />

<TextView
android:id="@+id/tv26"
android:text="row 2 col 6" />

</TableRow>

<TableRow
android:id="@+id/row3"
android:layout_height="wrap_content"
android:layout_width="match_parent">

<TextView
android:id="@+id/tv31"
android:text="row 3 col 1" />

<TextView
android:id="@+id/tv32"
android:text="row 3 col\n2 spans 5"
android:gravity="center_horizontal"
android:layout_span="5" />
</TableRow>

</TableLayout>

Objective #4: Use a AbsoluteLayout.

<?xml version="1.0" encoding="utf-8"?>

<AbsoluteLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>

<Button android:id="@+id/pixelsBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="80 px, 50 px"
android:layout_y="50px"
android:layout_x="80px">
</Button>

<Button android:id="@+id/scaledBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="80 spaces, 100 spaces"
android:layout_y="100sp"
android:layout_x="80sp">
</Button>

<Button android:id="@+id/inchesBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0.5 inches, 2 inches"
android:layout_y="2in"
android:layout_x="0.5in">
</Button>

<Button android:id="@+id/millimetersBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="8 mm, 40 mm"
android:layout_y="40mm"
android:layout_x="8mm">
</Button>

</AbsoluteLayout>

Objective #5: Use a RelativeLayout.

<?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:id="@+id/btnButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button 1"/>

<Button
android:id="@+id/btnButton2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button 2"
android:layout_toRightOf="@+id/btnButton1"/>

<Button
android:id="@+id/btnButton3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button 3"
android:layout_below="@+id/btnButton1"/>

<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/btnButton3"
android:layout_marginTop="94dp"
android:text="User :"
android:textAppearance="?android:attr/textAppearanceLarge" />

<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignTop="@+id/textView1"
android:layout_toRightOf="@+id/btnButton3" />

<Button
android:id="@+id/btnSubmit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_below="@+id/editText1"
android:text="Submit" />

</RelativeLayout>

Objective #6: Use some of Layout XML attributes.