http://blog.sina.com.cn/s/blog_682139d00100nab8.html
There is a lovely method on theandroid.text.Html
class,fromHtml()
, that converts HTML into aSpannable
for use with aTextView
.
However, the documentation does not stipulate what HTML tags are supported, which makes this method a bit hit-or-miss. More importantly, it means that you cannot rely on what it will support from release to release.
I have filedan issuerequesting that Google formally document what it intends to support. In the interim, from a quick look at the source code, here’s what seems to be supported as of Android 2.1:
-
<a href="..."> 定义链接内容
-
<b>
定义粗体文字 b是blod的缩写
-
<big>
定义大字体的文字
-
<blockquote>
引用块标签
-
<br>
定义换行
-
<cite>
表示引用的URI
-
<dfn>
定义标签dfn是defining instance的缩写
-
<div align="...">
-
<em>
强调标签em是emphasis的缩写
-
<font size="..." color="..." face="...">
-
<h1>
-
<h2>
-
<h3>
-
<h4>
-
<h5>
-
<h6>
-
<i>
定义斜体文字
-
<img src="...">
-
<p>
段落标签,里面可以加入文字,列表,表格等
-
<small>
定义小字体的文字
-
<strike>
定义删除线样式的文字 不符合标准网页设计的理念,不赞成使用. strike是strikethrough的缩写
-
<strong>
重点强调标签
-
<sub>
下标标签 sub是subscript的缩写
-
<sup>
上标标签 sup是superscript的缩写
-
<tt>
定义monospaced字体的文字不赞成使用.此标签对中文没意义tt是teletype or monospaced text style的意思
-
<u>
定义带有下划线的文字u是underlined text style的意思
一、在xml文件中使用android:textStyle=”bold”
二、但是不能将中文设置成粗体,将中文设置成粗体的方法是:
TextView tv=(TextView)findViewById(R.id.TextView01); TextPaint tp=tv.getPaint(); tp.setFakeBoldText(true);
|
Selecting, Highlighting, or Styling Portions of Text
You can highlight or style the formatting of strings or substrings of text in a TextView object. There are two ways to do this:
If you use a string resource, you can add some simple styling, such as bold or italic using HTML notation. The currently supported tags are: B (bold), I (italic), U (underline), TT (monospace), BIG, SMALL, SUP (superscript), SUB (subscript), and STRIKE (strikethrough). So, for example, in res/values/strings.xml you could declare this:
<resource>
<string>id="@+id/styled_welcome_message">We are <b><i>so</i></b> glad to see you.</string>
</resources>
To style text on the fly, or to add highlighting or more complex styling, you must use the Spannable object as described next.
To style text on the fly, you must make sure the TextView is using Spannable storage for the text (this will always be true if the TextView is an EditText), retrieve its text with getText(), and call setSpan(Object, int, int, int), passing in a new style class from the android.text.style package and the selection range.
The following code snippet demonstrates creating a string with a highlighted section, italic section, and bold section, and adding it to an EditText object.
// Get our EditText object.
EditText vw = (EditText)findViewById(R.id.text);
// Set the EditText's text.
vw.setText("Italic, highlighted, bold.");
// If this were just a TextView, we could do:
// vw.setText("Italic, highlighted, bold.", TextView.BufferType.SPANNABLE);
// to force it to use Spannable storage so styles can be attached.
// Or we could specify that in the XML.
// Get the EditText's internal text storage
Spannable str = vw.getText();
// Create our span sections, and assign a format to each.
str.setSpan(new StyleSpan(android.graphics.Typeface.ITALIC), 0, 7, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
str.setSpan(new BackgroundColorSpan(0xFFFFFF00), 8, 19, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
str.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), 21, str.length() - 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
I sometimes have the case to arrange the image next to the characters.
We can do it by putting TextView and ImageView into Layout.
But today I introduce the other way using only TextView.
The following sample code is how to show the image next to text.
(show four image(left, top, right, bottom of text))
final TextView textView = (TextView)findViewById(R.id.diet_log_label);
final Drawable iconDrawable = getResources().getDrawable(R.drawable.icon);
textView.setCompoundDrawablesWithIntrinsicBounds(iconDrawable, iconDrawable, iconDrawable, iconDrawable);
// or
textView.setCompoundDrawablesWithIntrinsicBounds(R.drawable.icon, R.drawable.icon, R.drawable.icon, R.drawable.icon);
To show only left image, write "setCompoundDrawablesWithIntrinsicBounds(iconDrawable, null, null, null)".
分享到:
相关推荐
基础HTML标签支持 - **链接标签 `<a>`**:用于定义超链接。 - **粗体标签 `<b>`**:定义粗体文字,是`<strong>`的替代品。 - **大字体标签 `<big>`**:定义大字体的文字(HTML5中已废弃)。 - **引用块标签 `...
- Android的TextView默认并不支持HTML解析,但通过`Html.fromHtml()`方法,我们可以将HTML字符串转换为Spanned对象,从而在TextView中显示。例如: ```java String htmlString = "<p>这是段落</p><img src='...
在Android XML布局文件中,如果`TextView`的内容包含特殊字符或者HTML标签,为了避免解析错误,我们通常会用`CDATA`来包围这部分内容。 在实现"带标签的TextView"时,开发者可能采用了以下几种方法: 1. **组合...
为了在`TextView` 中显示带有HTML标签和图片的内容,我们需要进行一些额外的处理。标题提到的“android TextView异步加载HTML(含图片)”就是一个解决此类问题的方法。 在描述中,我们看到一行代码 `tv.setText...
Android TextView可以支持简单的Html标签,但大部分Html标签是不支持的或者处理得不太好的,其中Img标签就是如此。如果在html中使用img标签的话就会遇到以下问题: 1、图片不能居中显示 2、图片的大小被缩小...
1. 使用`<img>`标签:如果你的TextView支持HTML内容,你可以通过设置`android:textIsSelectable="true"`和`android:text="@string/html_text"`来加载包含`<img>`标签的HTML字符串。这里的`src`属性应该引用的是图片...
如果要显示HTML格式的文本,可以使用`android:textHtml`属性,但这在API级别24及以下版本并不支持,所以我们通常会使用`Html.fromHtml()`方法来解析HTML字符串。 接下来,我们将详细讲解如何在TextView中添加图片和...
对于这种情况,可以使用第三方库,如`androidx.core.text.HtmlCompat`,它提供了更广泛的HTML标签支持,包括`<img>`。你需要提供一个`ImageGetter`接口来获取图片资源: ```java HtmlCompat.fromHtml(htmlText, ...
总结来说,通过理解和应用这些技术,开发者能够实现TextView的多样化显示,包括自定义HTML标签的解析,从而增强用户界面的可读性和互动性。这对于构建功能丰富的Android应用来说是至关重要的。记得在实践中不断尝试...
在布局XML文件中,我们通常使用`<TextView>`标签来创建一个TextView实例。例如: ```xml <TextView android:id="@+id/text_view_example" android:layout_width="wrap_content" android:layout_height="wrap_...
针对这种情况,Android 提供了支持富文本(Rich Text)的功能,允许在 `TextView` 中渲染 HTML 格式的内容,包括文字、图片、链接等。本教程将详细介绍如何在 `TextView` 中使用 HTML 片段来实现文字和图片的混排,...
本教程将详细讲解如何在TextView中完美地实现HTML标签数据,同时支持图片的屏幕适配和点击事件。 首先,我们要理解TextView如何解析HTML。Android内置了`Html.fromHtml()`方法,它可以将HTML字符串转换为Spanned...
1. **TextView加载Html**:在Android中,TextView通常用于显示纯文本,但通过加载Html,我们可以让TextView支持富文本格式,包括内嵌图片、链接、颜色等。使用`Html.fromHtml()`方法可以将Html字符串转换为Spanned...
在Android原生的TextView中,仅支持有限的HTML标签,如`<b>`(粗体)、`<i>`(斜体)和`<u>`(下划线),但无法直接处理复杂的HTML内容,如图像、链接或自定义样式。这就导致了开发者在需要展示富文本内容时面临困难...
首先,TextView支持HTML格式的文本,这意味着我们可以通过插入HTML标签来实现图文混排。例如,我们可以使用`<img>`标签来插入图片。HTML代码中的`<img>`标签通常包含`src`属性,用于指定图片的URL或资源ID。在...
Medium Textview Medium android application displays content with text, image, video etc in post detail. It can be a pain to do it with content came from CMS. So i decided to design that View to ...
支持TextView默认支持的所有标签,支持自定义,取代安卓默认的Html.TagHandler 特性 支持TextView默认支持的标签 支持自定义标签,接口类似Html.TagHandler 1 自定义标签: /** * 解析哈哈哈 */ public class ...
在Android开发中,TextView是用于显示文本的基本组件。在许多应用程序中,我们可能需要实现TextView中的文本高亮,并且能够对这些高亮的部分进行点击操作,例如在微博应用中,用户可能会@其他人、分享网址(http)...
本文实例讲述了Android TextView显示Html类解析的网页和图片及自定义标签。分享给大家供大家参考,具体如下: Android系统显示HTML网页的最佳控件为WebView,有时候为了满足特定需求,需要在TextView中显示HTML网页...