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 ...
随机推荐
- dinoql 使用nodejs 运行的几个问题
dinoql 是一个很不错的javascript objects 查询处理方案,基于graphql,当前版本有点问题 node 环境运行 ReferenceError: window is not d ...
- mysql 查询账户
查询 mysql 的存在的账户 >select user,host,password from mysql.user; # 可以查询涉及到user. host 链接权限.密码加密文件.
- 【后缀数组】【LuoguP4051】 [JSOI2007]字符加密
题目链接 题目描述 喜欢钻研问题的JS 同学,最近又迷上了对加密方法的思考.一天,他突然想出了一种他认为是终极的加密办法:把需要加密的信息排成一圈,显然,它们有很多种不同的读法. 例如'JSOI07' ...
- linux 安装mysql mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz
下边连接:https://www.cnblogs.com/zero-gg/p/8875598.html,大神的结晶啊,我就悄悄的留下来自己用,链接缺少的部分补充下: 1.包的下载方法:wget htt ...
- hbase 由于zookeeper问题导致连接失败问题
问题现象: 使用hbase shell 连接报如下问题: 2019-10-09 10:37:18,855 ERROR [main] zookeeper.RecoverableZooKeeper: Zo ...
- fluent meshing建立周期性网格
原视频下载地址:https://pan.baidu.com/s/1pKUXKgz 密码: 6pwh
- 蚂蚁Pincap头条
去年(18年)年底想出来看看机会,最后很幸运地拿到了 PingCAP,今日头条的 offer 以及蚂蚁金服的口头 offer.想着可以总结一下经验,分享一下自己这一段”骑驴找马”过的心路历程.当然,一 ...
- 刷题记录:[CISCN2019 华北赛区 Day1 Web1]Dropbox
目录 刷题记录:[CISCN2019 华北赛区 Day1 Web1]Dropbox 一.涉及知识点 1.任意文件下载 2.PHAR反序列化RCE 二.解题方法 刷题记录:[CISCN2019 华北赛区 ...
- #C++初学记录(STL容器以及迭代器)
STL初步 提交ACM会TLE /仅以学习STL与迭代器使用 C. Cards Sorting time limit per test1 second memory limit per test256 ...
- [代码质量] 代码质量管控 -- 复杂度检测 (JavaScript)
转载自: https://juejin.im/post/59bb8b546fb9a00a4247532e 背景 代码的复杂度是评估一个项目的重要标准之一.较低的复杂度既能减少项目的维护成本,又能避免一 ...