TextView高级应用之:TextView显示Html格式内容及图片

TextView是我们开发中最最常用到的组件之一,最常用的功能主要是用来进行文字展示。可以设置文字的大小,颜色等效果等。如果觉得TextView的功能仅仅是用来显示文字的话,那就大错特错啦,更多的用处如展示图片,实现部分文字点击事件,实现诸如网址,手机号带链接等都能在TextView中一一实现。强大吧!

在项目中就经常用到TextView来显示Html格式的文字,今天就简单地贴一下。做个笔记。

-------------------------简单的布局main_test_html.xml,就一个TextView------------------------------

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical" >

<TextView

android:id="@+id/htm_tv"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:padding="10dp"

android:textSize="16sp";

/>

</LinearLayout>

-----------------------在Activity中实现展示html格式文字-------------------------------

public class TestActivity extends Activity {

private TextView htmlTv;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main_test_html);

/**获得TextView控件*/

htmlTv = (TextView) findViewById(R.id.text);

/**我们自己拼凑Html格式字符串*/

String mHtmlStr = "<font color =‘blue‘>Html TextView</font><br/>";

mHtmlStr += "<font color=‘#ff00ff‘><big><i>加粗斜体的文字</i></big></font><p>";

mHtmlStr += "<big><a href=‘http://www.sina.com‘>带链接,点击直接跳新浪,呵呵</a></big>";

/**要使用Html.fromHtml,把含HTML标签的字符串转换成可显示的文本(CharSequence:String,StringBuffer等的父类)样式*/

CharSequence charSequence = Html.fromHtml(mHtmlStr);

// 通过setText给TextView赋值

htmlTv.setText(charSequence);

/**************如果我们要给TextView上添加图片又怎么操作呢***************************************/

/**要用到Html类ImageGetter接口*/

ImageGetter imageGetter = new ImageGetter() {

@Override

public Drawable getDrawable(String source) {

int id = Integer.parseInt(source);

Drawable drawable = getResources().getDrawable(id);

drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());

return drawable;

}

};

/**通过下面的方法就可以显示图片了*/

htmlTv.setText(Html.fromHtml("<img src=‘" + R.drawable.ic_empty + "‘/>", imageGetter, null));

}

}

时间: 2024-11-05 11:37:12

TextView高级应用之:TextView显示Html格式内容及图片的相关文章

python3 用requests 保存网页以及BeautifulSoup保存图片,并且在本地可以正常显示文章的内容和图片

用requests 模块做了个简单的爬虫小程序,将博客的一篇文章以及图片保存到本地,文章格式存为'.html'.当文章保存到本地后,图片的连接可能是目标站点的绝对或者相对路径,所以要是想在本地也显示图片,需要将保存下来图片的本地路径替换到本地的html文件里. 保存网页用的时requests模块,保存图片用的时BeautifulSoup, 这两个都是第三方模块,需要安装,使用时需要手动导入. **安装方式: pip install requsts 在python3 可能用 pip install

Android开发之TextView高级应用

我们平时使用TextView往往让它作为一个显示文字的容器,但TextView的功能并不局限于此.下面就和大家分享一下TextView的一些使用技巧. Android中设置文本样式的几种方法: 1.将android:autoLink属性值设为true.系统会自动识别E-mail.电话.网址等特殊文本. 2.使用Html标签,例如,<font>.<img>等.不要设置 android:autoLink 属性. 3.在Java代码中直接使用Span对象来设置文本样式.这种方法需要将文本

TextView 高级教程

前言 光看题目,估计有人已经忍不住吐槽了:尼玛,TextView 这么简单的控件,还有什么高级用法吗?放在以前,我也会这么想,但是随着开发经验的积累,我愈发觉得 TextView 简直就是一座宝藏,里面有很多宝贝值得研究. 本文基于 @Chiuki 的讲座,并结合我自己的经验整理而成. 视频地址:Youtube 讲稿地址:Github 部分 demo 对应的代码地址:Github 文章中的大部分图片和代码均摘自讲稿,感谢原作者的分享. Compound Drawable 如下图1中的效果,我们可

Android之TextView高级用法

功能: 1. 在TextView中显示图片,类似于含有表情图片的聊天 2.设置TextView的部分text可以点击 说明: SpannableString 实现了CharSequence接口,可以将text的指定部分标记为CharacterStyle对象,如ImageSpan,ClickableSpan等,TextView在显示时会将标记为CharacterStyle的部分text做特定处理 代码1:  在TextView中显示图片 // TextView mTextView = (TextV

Android的TextView使用Html来处理图片显示、字体样式、超链接等

一.[Android实例]实现TextView里的文字有不同颜色 转eoe:http://www.eoeandroid.com/thread-4496-1-1.html import android.text.Html; TextView t3 = (TextView) findViewById(R.id.text3);        t3.setText(            Html.fromHtml(                "<b>text3:</b>  

android------解决editText只输入一行和textView不显示过多的内容

最近在自己做一个记事本,但是用editText发现输入只能在一行输入,而且不能像手机的记事本从头开始,于是查阅资料,解决了问题. 解决记事本不能从头开始(gravity="top"是为了让文字从输入框上面依次排版下来,而不是显示在输入框中间.),只需添加以下代码: android:gravity="top" 解决editText只能在一行输入: android:inputType="textMultiLine" android:singleLin

MFC中显示 .bmp格式的位图

最近在看VisualC++ 图像处理的书籍,表示一直在从基础做起,今天就记录一个简单功能的实现,显示.bmp格式的位图. 首先需要理解的是窗口创建的过程包括两个步骤:首先擦除窗口的背景,然后在对窗口进行重新绘制. 一般而言,对于单文档或多文档的MFC程序,显示图像的代码要放在OnDraw函数之中.刚刚说过,窗口重绘时,要先将窗口的背景擦除,也就是发送WM_ERASEBKGND消息,然后用OnEraseBkgnd()函数处理这个消息,所以我们的显示图像的代码也可以放在这个函数之中.当然,这里只是为

SELECT CAST(GETDATE() AS VARCHAR(10)) 显示不同格式的原因

开发人员测试时,发现生产服务器与测试服务器执行SELECT CAST(GETDATE() AS VARCHAR(10))语句显示的格式不一样.如下所示 Server A Server B 其实出现这个问题,是因为登录名(login)的语言不一致所致,如下所示 可以使用下面SQL语句来检查对应的默认语言 SELECT @@LANGUAGE   或   SELECT loginname,name, language FROM sys.syslogins 上面出现不一致是因为同一登录名的默认语言在服务

TextView 获取行数,某一行的内容,某行的宽度

获取行数 ViewTreeObserver vto = textView.getViewTreeObserver(); vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() { @Override public void onGlobalLayout() { ViewTreeObserver obs = textView.getViewTreeObserver(); obs.removeGlobalOnLayoutListener(