Android Developer Fundamentals V2
Build your first
app
Lesson 1
Text and This work is licensed under a
Android
Android Developer
Developer Fundamentals
Fundamentals V2
V2 Scrolling Views
Creative Commons Attribution 4.0 Inter 1
national License
1.3 Text and scrolling
views
Text and This work is licensed under a
Android Developer Fundamentals V2 Scrolling Views
Creative Commons Attribution 4.0 Inter 2
national License
Contents
● TextView
● ScrollView
This work is licensed under a
Text and Creative Commons Attribution 4.0 Inter
Android Developer Fundamentals V2 3
Scrolling Views national License
TextView
Android Developer Fundamentals V2 4
TextView for text
● TextView is View subclass for single and multi-line text
● EditText is TextView subclass with editable text
● Controlled with layout attributes
● Set text:
○ Statically from string resource in XML
○ Dynamically from Java code and any source
Text and This work is licensed under a
Android Developer Fundamentals V2 Scrolling Views
Creative Commons Attribution 4.0 Inter 5
national License
Formatting text in string resource
● Use <b> and <i> HTML tags for bold and italics
● All other HTML tags are ignored
● String resources: one unbroken line = one paragraph
● \n starts a new a line or paragraph
● Escape apostrophes and quotes with backslash (\", \')
● Escape any non-ASCII characters with backslash (\)
Text and This work is licensed under a
Android Developer Fundamentals V2 Scrolling Views
Creative Commons Attribution 4.0 Inter 6
national License
Creating TextView in XML
<TextView android:id="@+id/textview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/my_story"/>
Text and This work is licensed under a
Android Developer Fundamentals V2 Scrolling Views
Creative Commons Attribution 4.0 Inter 7
national License
Common TextView attributes
android:text—text to display
android:textColor—color of text
android:textAppearance—predefined style or theme
android:textSize—text size in sp
android:textStyle—normal, bold, italic, or bold|italic
android:typeface—normal, sans, serif, or monospace
android:lineSpacingExtra—extra space between lines in sp
Text and This work is licensed under a
Android Developer Fundamentals V2 Scrolling Views
Creative Commons Attribution 4.0 Inter 8
national License
Formatting active web links
<string name="article_text">... [Link] ...</string>
<TextView
android:id="@+id/article"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:autoLink="web"
Don’t use HTML
android:text="@string/article_text"/>
for a web link in
free-form text
autoLink values:"web", "email", "phone", "map", "all"
Text and This work is licensed under a
Android Developer Fundamentals V2 Scrolling Views
Creative Commons Attribution 4.0 Inter 9
national License
Creating TextView in Java code
TextView myTextview = new TextView(this);
[Link](LayoutParams.MATCH_PARENT);
[Link](LayoutParams.WRAP_CONTENT);
[Link](3);
[Link]([Link].my_story);
[Link](userComment);
Text and This work is licensed under a
Android Developer Fundamentals V2 Scrolling Views
Creative Commons Attribution 4.0 Inter 10
national License
ScrollView
Android Developer Fundamentals V2 11
What about large amounts of text?
● News stories, articles, etc…
● To scroll a TextView, embed it in a ScrollView
● Only one View element (usually TextView) allowed in a
ScrollView
● To scroll multiple elements, use one ViewGroup (such as
LinearLayout) within the ScrollView
Text and This work is licensed under a
Android Developer Fundamentals V2 Scrolling Views
Creative Commons Attribution 4.0 Inter 12
national License
ScrollView for scrolling content
● ScrollView is a subclass of FrameLayout
● Holds all content in memory
● Not good for long texts, complex layouts
● Do not nest multiple scrolling views
● Use HorizontalScrollView for horizontal scrolling
● Use a RecyclerView for lists
Text and This work is licensed under a
Android Developer Fundamentals V2 Scrolling Views
Creative Commons Attribution 4.0 Inter 13
national License
ScrollView layout with one TextView
<ScrollView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/article_subheading">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
.../>
</ScrollView>
Text and This work is licensed under a
Android Developer Fundamentals V2 Scrolling Views
Creative Commons Attribution 4.0 Inter 14
national License
ScrollView layout with a view group
<ScrollView ...
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/article_subheading"
.../>
<TextView
android:id="@+id/article" ... />
</LinearLayout>
</ScrollView>
Text and This work is licensed under a
Android Developer Fundamentals V2 Scrolling Views
Creative Commons Attribution 4.0 Inter 15
national License
ScrollView with image and button
<ScrollView...>
One child of ScrollView
<LinearLayout...> which can be a layout
<ImageView.../>
Children of the layout
<Button.../>
<TextView.../>
</LinearLayout>
</ScrollView>
Text and This work is licensed under a
Android Developer Fundamentals V2 Scrolling Views
Creative Commons Attribution 4.0 Inter 16
national License
Learn more
Developer Documentation:
● TextView
● ScrollView and HorizontalScrollView
● String Resources
Other:
● Android Developers Blog: Linkify your Text!
● Codepath: Working with a TextView
This work is licensed under a
Text and
Android Developer Fundamentals V2 Creative Commons Attribution 4.0 Inter 17
Scrolling Views national License
What's Next?
● Concept Chapter: 1.3 Text and scrolling views
● Practical: 1.3 Text and scrolling views
This work is licensed under a
Text and
Android Developer Fundamentals V2 Creative Commons Attribution 4.0 Inter 18
Scrolling Views national License
END
Android Developer Fundamentals V2 19