1. SpannableString使用探索
TextView应该是Android中使用最频繁的控件之一,在实际开发中,有时候需要显示的文字设置不同的样式或者响应事件,例如部分字体颜色是其他颜色,有的字点击之后有响应事件,有的字高亮显示等等。最简单的当然是字符拼接了。比较合适的实现方法应该是使用HTML来解决或者使用SpannableString,这里主要介绍SpannableString,其可以实现符合文本,通过其给文本设置各种各样的样式。
开上见山,上图为敬:
这里主要涉及到的功能点如下:
- 设置TextView的背景颜色
- 部分文字添加超链接,并设置链接颜色
- 设置高亮与文字颜色
- 设置字体
- 设置字体大小
- 设置下划线
- 在TextView中用图片替换文字
- TextView基于X轴缩放
- 文字上下标的使用
- 。。。。
代码比较简单,如下:
public class MainActivity extends AppCompatActivity {
public static final String TAG = "MainActivity";
private TextView mTv1;
private TextView mTv2;
private TextView mTv3;
private TextView mTv4;
private TextView mTv5;
private TextView mTv6;
private TextView mTv7;
private TextView mTv8;
private TextView mTv9;
private TextView mTv10;
private TextView mTv11;
private TextView mTv12;
private TextView mTv13;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
showTextView();
}
private void init() {
mTv1 = (TextView) findViewById(R.id.tv_1);
mTv2 = (TextView) findViewById(R.id.tv_2);
mTv3 = (TextView) findViewById(R.id.tv_3);
mTv4 = (TextView) findViewById(R.id.tv_4);
mTv5 = (TextView) findViewById(R.id.tv_5);
mTv6 = (TextView) findViewById(R.id.tv_6);
mTv7 = (TextView) findViewById(R.id.tv_7);
mTv8 = (TextView) findViewById(R.id.tv_8);
mTv9 = (TextView) findViewById(R.id.tv_9)