In this tutorial, you’ll learn how to create basic Android text 
controls. Then you’ll learn how to configure, style, and manipulate the 
controls in a variety of ways.
 
This
 tutorial shows you the steps to create a number of different TextView 
controls in your Android application. First, you learn how to add basic 
text controls to your layout files and what some of their most useful 
attributes are. Next, you learn how to set the text control’s contents 
in two different ways. Finally, we discuss some of the other features 
available to TextView control in Android.
The Android SDK includes
 a simple static text control for use within your layouts: TextView 
(android.widget.TextView). A good example of TextView control usage 
would be to display textual labels for other controls, like “Enter a 
Date:”, “Enter a Name:” or “Enter a Password:”.
Here is an example of a screen with many different TextView controls displayed on it.
Step 1: Create an Android Application
Begin
 by creating an Android project. Implement your Android application as 
normal. Once you have a project set up and the application running, 
decide under what screen you want to add text controls to. Perhaps 
you’ve simply created a new Android project with its default Activity 
and layout (main.xml). This will work for this exercise. Once you have 
gotten your Android project set up, you are ready to proceed with this 
tutorial.
Step 2: Adding a TextView Control to a Layout
TextView
 controls are usually included as part of your Activity’s layout 
resource file. For example, to add a TextView control to the main.xml 
layout resource associated with your application, you must edit the 
layout file. You can do this within Eclipse using the Layout Resource 
designer, or by editing the XML directly. Controls can also be created 
programmatically and added to your screen at runtime. Simply create a 
Textview control (android.widget.TextView) and add it to your layout 
within your Activity.
To add a TextView control to a layout 
resource file, open the /res/layout/main.xml layout file that is part of
 your Android project. Click on the LinearLayout (or parent layout 
control) that you wish to add the TextView control to. In Eclipse from 
within the graphical Layout Resource designer, you can select the 
TextView control and drag it into the parent layout.
To configure how the TextView control looks and behaves, adjust the 
control’s attributes by selecting the control (either in the Outline tab
 or the Preview window) and changing its attributes, as shown the 
Properties Tab. You can also edit the XML directly.
Specific attributes of TextView controls you will want to be aware of:
- Give the TextView control a unique name using the id property.
- Set the text displayed within the TextView control using the text property; programmatically set with the setText() method.
- Set the layout height and layout width properties of the control as appropriate.
- Set
 any other attributes you desire to adjust the control’s appearance. For
 example, adjust the text size, color, font or other style settings.
Let’s discuss some of the most common attributes for TextView controls.
Step 3: Aligning Text within a TextView Control
By
 default, text contents of a TextView control are left-aligned. However,
 you can position the text using the gravity attribute. This setting 
positions your text relative to the control’s overall width and height 
and only really makes sense to use if there is whitespace within the 
TextView control because you’ve set it’s layout_height and/or 
layout_width to something other than wrap_content. In XML, this property
 would appear within your TextView control as:
android:gravity="center"
You can see an example of a center-aligned TextView control in 
the figure above, referred to as “Centered Text”. This TextView control 
has a layout_width of match_parent and a layout_height of wrap_content.
If
 you’re working with TextView control’s in your Java code, you can also 
set the alignment of your TextView control programmatically using the 
setGravity() method of the TextView class.
Step 4: Controlling the Background of a TextView Control
By
 default, the background of a TextView control is transparent. That is, 
whatever is behind the control is shown. However, you can set the 
background of a control explicitly, to a color resource, or a drawable 
(picture). In XML, this property would appear within your TextView 
control as:
| 
1 | 
android:background="#0000ff" | 
 
 
You
 can see an example of a TextView control with a blue background in the 
figure above. This TextView control has a layout_width of match_parent 
and a layout_height of wrap_content. Note that the entire control has 
the background, not just the area with the text contents.
If 
you’re working with TextView control’s in your Java code, you can also 
set the alignment of your TextView control programmatically using the 
setBackgroundResource() method of the View class.
Step 5: Automatically Linking TextView Control Contents
By
 default, any text contents within a TextView control is displayed as 
plain text. However, by setting one simple attribute called autoLink, 
all you can enable automatic detection of web, email, phone and address 
information within the text. In XML, this property would appear within 
your TextView control as:
You
 can see an example of a TextView control with automatic links in the 
figure above. This TextView control has no special handling link 
processing; its contents are just a string. The Android operating system
 detects the phone number, which, when clicked, launches the Phone 
application. Similarly, the email launches the user’s preferred email 
app. The URL launches the Browser application. If you were to include a 
fully resolvable address, it would be linked with the Maps application.
 If you’re working with TextView control’s in your Java code, you can 
also set the autoLink feature of your TextView control programmatically 
using the setAutoLinkMask() method of the TextView class.
Step 6: Working with Multi-Line TextView Controls
By
 default, text contents of a TextView control will wrap and continue on 
multiple lines unless you specify otherwise. You can customize this 
behavior in a number of ways:
- You can use the android:lines attribute to set the TextView control to a specific number of lines.
- You
 can use the android:minLines  and android:maxLines attribute to set the
 TextView control to a never grow smaller or larger than specific number
 of lines.
- You can use the android:singleLine  attribute to 
avoid wrapping onto multiple lines, but instead provide a one line 
alterative view of the text.
- You can use the 
android:lineSpacingExtra attribute to specify the distance of whitespace
 between each line (e.g. double spaced for readability).
You can see examples of multi-line and line-spaced TextView controls in the figure above.
If
 you’re working with TextView control’s in your Java code, you can also 
modify these settings programmatically using the appropriate methods of 
the TextView class (see the TextView class information with the Android 
SDK documentation for details).
Step 7: Customizing the Text Color of a TextView Control
You
 can control the color of the text within the TextView control by using 
the textColor attribute. This attribute can be set to a color resource, 
or a specific color by hex value. In XML, this property would appear 
within your TextView control as:
| 
1 | 
android:textColor="#ff0000" | 
 
 
You
 can see an example of a red TextView control in the figure above. If 
you’re working with TextView control’s in your Java code, you can also 
set the color attribute of your TextView control programmatically using 
the setTextColor() method of the TextView class.
You can also 
create a rather subtle kind of glow effect on your TextView control 
using the shadowColor, shadowDx, shadowDy, and shadowRadius attributes, 
as shown in the bottom TextView control of the figure. These attributes 
are programmatically equivalent to the setShadowLayer() method of the 
TextView class.
Step 8: Customizing the Styling and Font Family of a TextView Control
You
 can control the style of the text (bold, italic) and font family (sans,
 serif, monospace) within the TextView control by using the textStyle 
and typeface attributes. In XML, these properties would appear within 
your TextView control as:
| 
1 
2 | 
android:textStyle="bold" 
android:typeface="monospace" | 
 
 
You
 can see examples of bold and monospace TextView controls in the figure 
above. If you’re working with TextView control’s in your Java code, you 
can also set the both attributes of your TextView control 
programmatically using the setTypeface() method of the TextView class
Conclusion
TextView
 controls are commonly used in Android application user interfaces to 
display text contents in different ways. In this tutorial, you learned 
how to create Android text controls and customize them in a variety of 
simple ways. These attributes can be mixed and matched to allow for very
 flexible text display on the screen.