- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在使用 Html.fromHtml 获取描述标签的内容(在提要 XML 中)并且它工作正常
描述标签:
<description><![CDATA[<div class="K2FeedIntroText"><p><img style="margin: 10px; float: left;" alt="block curta" src="http://loc.grupolusofona.pt/images/stories/destaques/block%20curta.jpg" height="110" width="120" />Quatro Horas Descalço é o nome da curta-metragem, realizada por Ico Costa, que se estreia mundialmente no 7.º Festival Internacional de Cinema de Roma, nos dias 12 e 13 de novembro, em competição no Cinema XXI.</p>
]]>
但是当我查看 documentation 时它说:
Returns displayable styled text from the provided HTML string. Any <img> tags in the HTML will display as a generic replacement image which your program can then go through and replace with real images.
所以我的问题是:我怎样才能做到它所说的“然后您的程序可以通过并替换为真实图像”?
我知道如何使用模式通过 RegEx 获取 img url,我只是想知道如何使用该类“通过并用图像替换它”
如果我不清楚,请说些什么,我会尽力解释得更好。
编辑:
好吧,我正在尝试在一个简单的 rss 阅读器中实现它(并尝试使其在代码方面尽可能简单)
我正在使用 DOM 解析器并且我正在使用 map = HashMap<String, Spanned>
存储每个子节点的值,以及 KEY
:
map.put(KEY_DESC, Html.fromHtml(parser.getValue(e, KEY_DESC)));
在答案的评论中我发现了一个有用的 link我从中创建了一个新类 (URLImageParser) 并尝试像这样使用它:
map.put(KEY_DESC, htmlSpan);
在哪里htmlSpan
将是以下结果:
this.textView = (TextView)this.findViewById(R.id.textview);
URLImageParser p = new URLImageParser(textView, this);
Spanned htmlSpan = Html.fromHtml(html, p, null);
textView.setText(htmlSpan);
我还创建了一个 android:visibility="gone"
TextView 以防万一它需要将值存储在 TextView 中(也许我解释错了)
我最初的想法是htmlSpan
属于 Spanned
类型所以它很适合我的 HashMap。
为了上传到 ListView,我使用了 SimpleAdapter
像这样:
ListAdapter adapter = new SimpleAdapter(this, menuItems, R.layout.linhafeed,
new String[] { KEY_TITLE, KEY_DESC, KEY_PUBDATE, KEY_LINK },
new int[] { R.id.title, R.id.desc, R.id.pub, R.id.link });
在哪里menuItems
是ArrayList<HashMap<String,Spanned>>
我这里有什么问题吗?
最佳答案
Html.fromHtml(...)
将替换任何 <img ... />
带有 ImageSpan
的标签和一个特殊的 'object replacement character' (\uFFFC) .
要显示实际图像,看起来有两种选择:
ImageGetter
返回图像显示为 Drawable
.如果我没记错的话,这将不允许您将图像加载卸载到不同的线程,因为它希望立即返回结果。因此,这应该足以满足本地资源的需求(并且可能还满足设备本地存储中的任何 Assets 的需求,前提是不需要潜在的长时间运行的操作;即缩放、裁剪、应用效果等)。Spanned
结果并替换任何 \uFFFC
事件。您应该能够从每个 ImageSpan
中获取图像的来源(url)使用 getSource()
方法。不幸的是,看起来没有任何 setter 可以更新 Drawable
一旦加载,所以我猜你可能需要更换 ImageSpan
用一个新的,在构造函数中传递加载的图像。第三种选择,可能比上面的更重量级,是使用 WebView
而不是 TextView
.这样您就不必自己处理任何图像加载,因为它内置在小部件中。
关于Android - 类 Html - fromHtml - 它是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13260558/
我正在尝试设置String的样式,然后再将其设置为TextView。但是,当我运行该应用程序时,没有样式应用于文本。 我已经在strings.xml中将字符串资源定义为 \u20B9%1$s add
这个问题已经有答案了: Html.fromHtml deprecated in Android N (15 个回答) 已关闭 6 年前。 将目标 SDK 版本更新至 24.0.0 后,fromHtml
如何删除 Android Studio 中已弃用的错误。 @SuppressWarnings("deprecated") public void setText(){ i
当我使用Html.fromHtml(source)时文本上的方法,所有未知标签都被删除(不幸的是,我有一个情况,其中表情符号是在 <> 符号中定义的,例如 )。有没有办法强制 Html.fromHt
我有一个 TextView ,我想以 TextView 的正常字体大小显示 0.0,然后以较小的文本大小显示 StringResult()。 如果我添加“0.0” + 它不起作用。为什么? publi
我从 API 收到带有换行符的文本,但我无法让换行符起作用。 这是我要显示的文本的一部分。 http://pastebin.com/CLnq16mP (将它粘贴到那里,因为 stackoverflow
Android Html.fromHtml 函数自动将不需要的文本转换为超链接。 这是我的代码: String htmlContent= "corners of nail.It has to";
我有一个 TextView我想在其中显示多色文本。我正在使用 html.fromHtml为此,但它没有显示任何颜色。 我的代码是: //statusToShow is a String Log.d("
我遇到了一个奇怪的问题: 我的 Html.fromHtml() 源字符串如下: Terrible experience with Nikko hotelIt was not easy to cance
也许这不是一个错误,因为文档并没有详细说明 fromHTML() 到底做了什么,但这对我来说仍然是个问题。如果提供的字符串依次包含两个或多个空格,fromHTML() 会删除除一个以外的所有空格: H
如果 tv.setText(Html.fromHtml(text)); 耗时太长,导致 UI 挂起,我该怎么办?如果我可以用一个线程来做,你能提供一个例子吗? 最佳答案 private Handler
我正在尝试使用 Html.fromHtml() 在 TextView 中设置背景。特别是,我想在第一个词上设置背景。 我使用了以下代码: Html.fromHtml("("+someText+")")
在我的应用程序中,我使用 Html.fromHtml(string).toString 方法删除了一些 当我解析一些 JSON 时收到的标签。 如果我离开 标签上,文本完全适合背景(背景是高度和宽度都
对齐是否在 TextView 的 HTML.fromHtml() 中起作用? 我试过了 Test 以及其中的一些变体,包括将不带括号的对齐标签放在段落标签中,但都没有用。文本始终保留。 感谢您的帮助!
我在 android nougat 上使用下面的代码并且它正在工作:- Html.fromHtml(" " + myText + "标签。 有什么方法可以在所有设备上工作吗? myText是recyl
我有需要在 TextView 中显示的 html 文本。 html 可能看起来像这样 - Text with background and color Html.fromHtml 不支持字体标签的颜色
我要显示 HTML " In the name of God the compassionate, the merciful" 在 TextView 中。所以我使用了Html.fromHtml(),
我在这个字符串中有 html 字符串和 SpannableString,我把它们都放在了 TextView 中,问题出在 SpannableString,Html.fromhtml()中没有显示。如何
我正在尝试将 HTML 文本分配给 TextView。以下是 HTML 示例: Some Text Some More Text 我正在使用 Html.fromHtml(myHtmlString) 来
我从 EditText 框中获取跨区文本,并使用 HTML.toHtml 将其转换为 HTML 标记字符串。这工作正常。我已验证该字符串是正确的并且包含 在适当的位置。但是,当我必须将标记字符串转换回
我是一名优秀的程序员,十分优秀!