博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
TextView
阅读量:6767 次
发布时间:2019-06-26

本文共 3277 字,大约阅读时间需要 10 分钟。

ClickSpan 点击事件

-------------------------------------------------------------------------
-------------------------------------------------------------------------SpannableStringBuilder likes = new SpannableStringBuilder();span.setSpan(new ClickableSpan() { @Override public void onClick(View widget) { } @Override public void updateDrawState(TextPaint ds) { ds.setColor(getResources().getColor(R.color.color_57)); ds.setUnderlineText(false); }}, 0, span.length() - 2, SpannableString.SPAN_INCLUSIVE_EXCLUSIVE);likes.append(span);tvLike.setText(likes);tvLike.setMovementMethod(LinkMovementMethod.getInstance());-------------------------------------------------------------------------package abc;import android.content.Context;import android.text.Layout;import android.text.Spannable;import android.text.TextUtils;import android.text.style.ClickableSpan;import android.util.AttributeSet;import android.view.MotionEvent;import android.widget.TextView;/** * Created by AWei on 2015/4/13. * */public class SpannableTextView extends TextView { public SpannableTextView(Context context) { super(context); } public SpannableTextView(Context context, AttributeSet attrs) { super(context, attrs); } public SpannableTextView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @Override public boolean onTouchEvent(MotionEvent event) { boolean result = super.onTouchEvent(event); int x = (int) event.getX(); int y = (int) event.getY(); x -= getTotalPaddingLeft(); y -= getTotalPaddingTop(); x += getScrollX(); y += getScrollY(); Layout layout = getLayout(); int line = layout.getLineForVertical(y); int off = layout.getOffsetForHorizontal(line, x); CharSequence text = getText(); if (TextUtils.isEmpty(text) || !(text instanceof Spannable)) { return result; } Spannable buffer = (Spannable) text; ClickableSpan[] link = buffer.getSpans(off, off, ClickableSpan.class); if (link.length > 0) { return true; } else { return false; } }}

TypefaceSpan 字体

msp.setSpan(new TypefaceSpan("monospace"), 0, 2, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

AbsoluteSizeSpan 大小

msp.setSpan(new AbsoluteSizeSpan(20), 4, 6, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  msp.setSpan(new RelativeSizeSpan(0.5f), 8, 10, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

ForegroundColorSpan 颜色

msp.setSpan(new ForegroundColorSpan(Color.MAGENTA), 12, 15,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

BackgroundColorSpan 背景色

msp.setSpan(new BackgroundColorSpan(Color.CYAN), 15, 18, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

StyleSpan 样式

msp.setSpan(new StyleSpan(android.graphics.Typeface.NORMAL), 18, 20, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  //正常  msp.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), 20, 22, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  //粗体  msp.setSpan(new StyleSpan(android.graphics.Typeface.ITALIC), 22, 24, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  //斜体  msp.setSpan(new StyleSpan(android.graphics.Typeface.BOLD_ITALIC), 24, 27, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  //粗斜体

转载于:https://www.cnblogs.com/uccmawei/p/4873813.html

你可能感兴趣的文章
How to set up Conflux
查看>>
大数据时代,你的个人信息安全吗?
查看>>
我的友情链接
查看>>
javascript时间格式化
查看>>
Spring MVC基础
查看>>
JavaScript权威指南笔记
查看>>
android启动activity文本框不获得焦点
查看>>
linux运维实战练习-2015年8月30日课程作业(练习)安排
查看>>
给新手的最佳类Windows界面的Linux发行版
查看>>
Centos7下按照配置nexus2
查看>>
第13章 使用Bind提供域名解析服务
查看>>
我的友情链接
查看>>
Centos7 mount/ rpm/ yum 软件仓库搭建
查看>>
EC2上源安装vnstat
查看>>
高性能Web服务之varnish应用详解及实战应用
查看>>
我的友情链接
查看>>
CentOS 6网卡名称修改 以及 centos7 采用传统命名方式
查看>>
Maven 中的jar包冲突
查看>>
lvs基于fwm定义集群服务
查看>>
awk 系列Part3:如何使用 awk 按模式筛选文本或字符串
查看>>