文章目录
- 1、简介
- 2、实现原理
- 3、代码实例
1、简介
我们在使用TextView的时,有时候回遇到文字加图片的样子
2、实现原理
在TextView中预订了一些类似HTML的标签,通过标签可以使TextView控件显示不同颜色,大小,字体的文字
<font>:设置颜色和字体
<big>:设置大号
<small>:设置小号
<i>\<b>:斜体、粗体
<a>:链接地址
<img>:插入图片
书写 html格式字符串,并且解析
3、代码实例
1)xml 文件 比较简单
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/testView_id"/>
2)功能代码
package myapplication21.lum.com.mytextview;
import android.graphics.drawable.Drawable;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.Html;
import android.util.Log;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
TextView textView ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = (TextView) findViewById(R.id.testView_id);
String html="<font>企鹅</font><img src=QQ> " + //写一行HTML形式的代码,并用一个字符串接收它
"<font>微信</font><img src=VX>";
/**
* 这行代码是什么意思呢?大家也看了上面的HTML简单的标签。<font>是字体,所以<font>和</font>之间的是文字,<img>是图片,src是图片的名称
* 然后我们要解释这行HTML代码,就用到了这个方法
*
* 其中source是字符串形式的 也就是我们需要解释的HTML代码。ImageGetter就是图片的资源,TagHandler就标签在这里设置为null就行。
* */
CharSequence text = Html.fromHtml(html, new Html.ImageGetter() {
public Drawable getDrawable(String source) {
Drawable draw = null;
//根据图片资源ID获取图片
Log.d("source", source);
switch (source){
case "VX":
draw =getResources().getDrawable(R.drawable.weixin);
break;
case "QQ":
draw =getResources().getDrawable(R.drawable.qq);
break;
default:
return null;
}
draw.setBounds(0, 0, draw.getIntrinsicWidth(), draw.getIntrinsicHeight()); //设置图片的大小
return draw;
}
}, null);
textView.setText(text);
textView.append("大战360"); //在文字后面直接添加显示
}
}