Android--TextView第一个单词大写
自定义TextView:
public class FirstBoldTextView extends TextView
{
private boolean firstWordBold = false;
private String str; public FirstBoldTextView(Context context, AttributeSet attrs, int defStyle)
{
super(context, attrs, defStyle);
// TODO Auto-generated constructor stub
} public FirstBoldTextView(Context context, AttributeSet attrs)
{
super(context, attrs);
// TODO Auto-generated constructor stub
} public FirstBoldTextView(Context context)
{
super(context);
} @SuppressLint("DrawAllocation")
@Override
protected void onDraw(Canvas canvas)
{
str = getText().toString().trim();
if (!TextUtils.isEmpty(str) && !firstWordBold)
{
SpannableStringBuilder ssb = new SpannableStringBuilder(str);
ssb.setSpan(new FirstWordBoldSpan(Typeface.NORMAL), 0, str.indexOf(" "), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
setText(ssb);
setMovementMethod(LinkMovementMethod.getInstance());
firstWordBold = true;
}
super.onDraw(canvas);
} @Override
protected void onTextChanged(CharSequence text, int start, int lengthBefore, int lengthAfter)
{
super.onTextChanged(text, start, lengthBefore, lengthAfter);
firstWordBold = false;
}
}
其中FirstWordBoldSpan代码如下:
public class FirstWordBoldSpan extends StyleSpan
{ public FirstWordBoldSpan(int style)
{
super(style);
} @Override
public int describeContents()
{
// TODO Auto-generated method stub
return super.describeContents();
} @Override
public int getSpanTypeId()
{
return super.getSpanTypeId();
} @Override
public int getStyle()
{
return super.getStyle();
} @Override
public void updateDrawState(TextPaint ds)
{
ds.setFakeBoldText(true);
super.updateDrawState(ds);
} @Override
public void updateMeasureState(TextPaint paint)
{
paint.setFakeBoldText(true);
super.updateMeasureState(paint);
} @Override
public void writeToParcel(Parcel dest, int flags)
{
// TODO Auto-generated method stub
super.writeToParcel(dest, flags);
} }
Android--TextView第一个单词大写的更多相关文章
- Android零基础入门第17节:Android开发第一个控件,TextView属性和方法大全
原文:Android零基础入门第17节:Android开发第一个控件,TextView属性和方法大全 前面简单学习了一些Android UI的一些基础知识,那么接下来我们一起来详细学习Android的 ...
- Android TextView和EditText属性详解
TextView属性详解: autoLink设置 是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接.可选值(none/web /email/phone/map/all) ...
- android TextView 添加下划线
android Textview加下划线 由于新做的一个项目要求有字体带下划线效果,当时看了下其实可以通过图片伪造出那种视觉效果.但是为了体现点技术含量,于是我想用Textview带下划线的效果.方法 ...
- Android TextView属性
android:autoLink设置是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接.可选值(none/web/email/phone/map/all)android:a ...
- 20172327 2018-2019-1 《第一行代码Android》第一章学习总结
学号 2018-2019-1 <第一行代码Android>第一章学习总结 教材学习内容总结 - Android系统架构: 1.Linux内核层 Android系统是基于Linux内核的,这 ...
- Android textview及其子类
属性: android:autoLink设置是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接.可选值(none/web/email/phone/map/all) andr ...
- Android——TextView属性XML详解
Android_TextView属性XML详解 博客分类: android 属性名称 描述 android:autoLink 设置是否当文本为URL链接/email/电话号码/map时 ...
- Android的第一个程序
摘要:对于安卓的历史和安卓需要学习哪些东西以及怎么安卓环境,我就不在这里多说了,网上一大推. 我这里主要说的就是代码.一些基础的安卓知识.在接下来的每个月里我都会不定期写一些博客给初学者学习,我会尽量 ...
- Android TextView 添加下划线的几种方式
总结起来大概有5种做法: 1. 将要处理的文字写到一个资源文件,如string.xml(使用html用法格式化) 2. 当文字中出现URL.E-mail.电话号码等的时候,可以将TextView ...
随机推荐
- HDU 1542.Atlantis-线段树求矩形面积并(离散化、扫描线/线段树)-贴模板
好久没写过博客了,这学期不是很有热情去写博客,写过的题也懒得写题解.现在来水一水博客,写一下若干年前的题目的题解. Atlantis Time Limit: 2000/1000 MS (Java/Ot ...
- Error:(1, 1) java: 非法字符: '\ufeff'
找到 java 文件. 使用 notepad 打开,转码,并保存即可.
- mysql 组合聚集函数
mysql> select * from table1; +----------+------------+-----+---------------------+ | name_new | t ...
- Eclipse 高亮显示(pydev 编辑 python)
因为是使用pydev编辑的python,所以需要修改(pydev)的属性. Window->Preferences->General->Editors->Text Editor ...
- K8S API对象
POD Pod是在K8s集群中运行部署应用或服务的最小单元,它是可以支持多容器的.Pod的设计理念是支持多个容器在一个Pod中共享网络地址和文件系统,可以通过进程间通信和文件共享这种简单高效的方式组合 ...
- 基于Docker部署ETCD集群
基于Docker部署ETCD集群 关于ETCD要不要使用TLS? 首先TLS的目的是为了鉴权为了防止别人任意的连接上你的etcd集群.其实意思就是说如果你要放到公网上的ETCD集群,并开放端口,我建议 ...
- javassist使用全解析
Java 字节码以二进制的形式存储在 .class 文件中,每一个 .class 文件包含一个 Java 类或接口.Javaassist 就是一个用来 处理 Java 字节码的类库.它可以在一个已经编 ...
- redis之 主从复制和哨兵
一.Redis主从复制 主从复制:主节点负责写数据,从节点负责读数据,主节点定期把数据同步到从节点保证数据的一致性 1. 主从复制的相关操作 a,配置主从复制方式一.新增redis6380.conf, ...
- m4a 转MP3
import os for filename in os.listdir(r'.'): print filename os.rename(filename,filename.replace(' ',' ...
- 【vue】npm、node版本查看及npm常用命令
1,版本查看 node -v npm -v 2,修改NPM的缓存目录和全局目录路径 D盘node目录下创建两个目录,分别是node_cache和node_global,这是用来放安装过程的缓存文件以及 ...