Android(安卓)SpannableString 基本用法
16lz
2021-01-25
以下介绍SpannableString 对文字的一些特别处理:比如字体,颜色,下划线,链接和点击事件。
先看效果:
布局代码就不贴了,很简单就是3个TextView.现在看MainActivity中的代码实现:
private TextView mTvContent1; private TextView mTvContent2; private TextView mTvContent3; private String contentStr1 = "点击事件,下划线,字体颜色"; private String contentStr2 = "百度链接"; private String contentStr3 = "粗体"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //设置点击事件,下划线,字体颜色 mTvContent1 = (TextView) findViewById(R.id.tv_content1); SpannableString ss1 = new SpannableString(contentStr1); ss1.setSpan(new ClickableSpan() { @Override public void updateDrawState(TextPaint ds) { super.updateDrawState(ds); ds.setUnderlineText(true);//设置下划线 ds.setColor(Color.RED);//设置字体颜色 } @Override public void onClick(View widget) { Toast toast = Toast.makeText(MainActivity.this, "点击", Toast.LENGTH_SHORT); toast.show(); } }, 0, contentStr1.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); mTvContent1.setText(ss1); mTvContent1.setHighlightColor(Color.TRANSPARENT); mTvContent1.setMovementMethod(LinkMovementMethod.getInstance()); //设置链接 mTvContent2= (TextView) findViewById(R.id.tv_content2); SpannableString ss2 = new SpannableString(contentStr2); ss2.setSpan(new URLSpan("http://www.baidu.com"), 0, contentStr2.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); mTvContent2.setText(ss2); mTvContent2.setMovementMethod(LinkMovementMethod.getInstance()); //设置粗体: mTvContent3= (TextView) findViewById(R.id.tv_content3); SpannableString ss3 = new SpannableString(contentStr3); ss3.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), 0, contentStr3.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); mTvContent3.setText(ss3); }}
以上就是整个代码:其中对于点击和链接事件,要特别注意需要setMovementMethod,否则可能不会响应事件。
更多相关文章
- Android(安卓)studio 类似于eclipse 中的 Ctrl+1 快捷键(quick f
- Android面试总结-中高级
- 浅谈Android下的Wifi&&安卓WIFI 移植
- Android安卓 PopupWindow工具类
- android TextView 中的字体
- GestureDetector部分源码分析
- Android中ConvenientBanner的使用
- Android中Dialog设置外部点击事件
- android 拍照图片旋转问题