TextView如何显示带标签的文本?

gaodengjie 2014-03-26 10:03:04
TextView如何显示带<image>标签的文本?
...全文
234 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
将HTML代码贴出来看看
gaodengjie 2014-03-27
  • 打赏
  • 举报
回复
还没有满意答案顶上去。
s478853630 2014-03-27
  • 打赏
  • 举报
回复
用TextView去显示html代码,效果不是很好:
TextView lblContent = findView(R.id.lblContent);
			lblContent.setText(Html.fromHtml(bean.getContent(),
					imageUtil.htmlImageTag(ImageUtil.HTML_TYPE_NET, this),
					new HtmlTagHandler(this)));
			lblContent.setClickable(true);
			lblContent.setMovementMethod(LinkMovementMethod.getInstance());
			lblContent.setVisibility(View.VISIBLE);

ImageUtil的代码:
/**
	 * 解析html图片标签的适配器
	 * 
	 * @param sourceType
	 *            图片来源的类型
	 * @param activity
	 *            容器
	 * @return
	 */
	public Html.ImageGetter htmlImageTag(final int sourceType,
			final AbstractActivity activity) {
		return new Html.ImageGetter() {
			public Drawable getDrawable(final String url) {
				Drawable drawable = null;
				try {
					switch (sourceType) {
					case HTML_TYPE_NET:
						FutureTask<Drawable> task = new FutureTask<Drawable>(
								new Callable<Drawable>() {
									public Drawable call() throws Exception {
										try {
											return new BitmapDrawable(activity
													.getBitmapByUrl(url));
										} catch (Exception e) {
											return new BitmapDrawable(
													activity.resBitmap(R.drawable.def_photo));
										}
									}
								});
						new Thread(task).start();
						drawable = task.get((long) Domain.SHORT_REQUEST_TIME,
								TimeUnit.MILLISECONDS);
						break;
					case HTML_TYPE_RES:
						drawable = TckApp.get().getResources()
								.getDrawable(Integer.parseInt(url));
						break;
					case HTML_TYPE_LOCAL:
						drawable = Drawable.createFromPath(url);
						break;
					}
				} catch (Exception e) {
					Log.e(Domain.TAG_NAME, "解析html图片标签的适配器");
				}
				if (null != drawable) {
					drawable.setBounds(0, 0, drawable.getIntrinsicWidth(),
							drawable.getIntrinsicHeight());
				}
				return drawable;
			};
		};
	}
换成WebView,效果会好很多
WebView wbvContent = findView(R.id.wbvContent);
			BrowserUtil.get(wbvContent, null, null, true);
			wbvContent.loadDataWithBaseURL("file://", bean.getContent(),
					BrowserUtil.MIME_TYPE_HTML, HTTP.UTF_8,
					BrowserUtil.ABOUT_BLANK);
			wbvContent.setVisibility(View.VISIBLE);
517967268 2014-03-27
  • 打赏
  • 举报
回复
Html.fromHtml(htmlString, imageGetter, null) 我用起来就没没问题的啊 http://www.cnblogs.com/mxgsa/archive/2012/12/14/2816775.html 我就是按照这样来做的
网络咖啡 2014-03-27
  • 打赏
  • 举报
回复
换成WebView
gaodengjie 2014-03-27
  • 打赏
  • 举报
回复
TextView content = (TextView) findViewById(R.id.content); String text ="显示网络图片<img src='http://images.csdn.net/20140327/QQ%E6%88%AA%E5%9B%BE20140327133248.png'>" content.setText(text ); ------------ 就这样啊。
gaodengjie 2014-03-26
  • 打赏
  • 举报
回复
其实文本里的就是<img src>这样的。
  • 打赏
  • 举报
回复
直接用正则将Image替换为img,然后再显示
gaodengjie 2014-03-26
  • 打赏
  • 举报
回复
这个显示不了<image>标签。有另外的一个重载方法Html.fromHtml(htmlString, imageGetter, null),但是我用起来好像有些问题。
517967268 2014-03-26
  • 打赏
  • 举报
回复
textview.setText(Html.fromHtml(内容));// 内容里面放带<image>标签的文本

80,471

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧