<!--
  Copyright 2013 The Android Open Source Project

  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->

    <ScrollView
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        tools:context=".MainActivity">

        <LinearLayout
            android:orientation="vertical"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:paddingBottom="@dimen/activity_vertical_margin"
            android:paddingLeft="@dimen/activity_horizontal_margin"
            android:paddingRight="@dimen/activity_horizontal_margin"
            android:paddingTop="@dimen/activity_vertical_margin">


            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/intro" />

            <!-- text_auto_linkify automatically linkifies things like URLs and phone numbers. -->
            <TextView
                android:id="@+id/text_auto_linkify"
                style="@style/LinkText"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:autoLink="all"
                android:text="@string/link_text_auto" />

            <!--
                   text_html_resource uses a string resource containing explicit anchor tags (<a>)
                   to specify links.
            -->
            <TextView
                android:id="@+id/text_html_resource"
                style="@style/LinkText"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"/>

            <!-- text_html_program builds the text in the Java code using HTML. -->
            <TextView
                android:id="@+id/text_html_program"
                style="@style/LinkText"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" />

            <!-- text_spannable builds the text in the Java code without using HTML. -->
            <TextView
                android:id="@+id/text_spannable"
                style="@style/LinkText"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" />
        </LinearLayout>
    </ScrollView>
