首页
技术博客
PHP教程
数据库技术
前端开发
HTML5
Nginx
php论坛
新用户注册
|
会员登录
PHP教程
技术博客
编程问答
PNG素材
编程语言
前端技术
Android
PHP教程
HTML5教程
数据库
Linux技术
Nginx技术
PHP安全
WebSerer
职场攻略
JavaScript
开放平台
业界资讯
大话程序猿
登录
极速注册
取消
热门标签 | HotTags
integer
import
const
cPlusPlus
dagger
heap
scala
heatmap
subset
filter
express
post
cpython
datetime
bitmap
emoji
function
match
php
lua
tree
substring
char
jar
数组
settings
golang
erlang
python3
plugins
dockerfile
c语言
php8
jsp
vbscript
get
join
merge
metadata
python
expression
range
hashcode
main
keyword
input
future
replace
bash
sum
include
hook
python2
fetch
iostream
search
web
go
node.js
object
version
stream
php5
random
bytecode
client
controller
dll
yaml
split
perl
hashset
select
install
config
cmd
ip
window
java
当前位置:
开发笔记
>
编程语言
> 正文
Android中TextView通过SpannableString设置字体、大小、颜色、样式、超级链接
作者:晴兮心语6 | 来源:互联网 | 2023-05-17 17:54
原文地址publicclassMainActivityextendsActionBarActivity{privateTextView
原文地址
public
class
MainActivity
extends
ActionBarActivity {
private
TextView tv, tv2;
private
SpannableString sStr, sStr2;
@Override
protected
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv = (TextView)
this
.findViewById(R.id.textView1);
tv2 = (TextView)
this
.findViewById(R.id.textView2);
//创建一个SpannableString对象
sStr =
new
SpannableString(
"最是那一低头的温柔,像一朵水莲花不胜凉风的娇羞,道一声珍重,道一声珍重,那一声珍重里有蜜甜的忧愁"
);
//设置字体(default,default-bold,monospace,serif,sans-serif)
sStr.setSpan(
new
TypefaceSpan(
"default"
),
0
,
2
, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
sStr.setSpan(
new
TypefaceSpan(
"default-bold"
),
2
,
4
, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
sStr.setSpan(
new
TypefaceSpan(
"monospace"
),
4
,
6
, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
sStr.setSpan(
new
TypefaceSpan(
"serif"
),
6
,
8
, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
sStr.setSpan(
new
TypefaceSpan(
"sans-serif"
),
8
,
10
, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
//设置字体大小(绝对值,单位:像素),第二个参数boolean dip,如果为true,表示前面的字体大小单位为dip,否则为像素
sStr.setSpan(
new
AbsoluteSizeSpan(
20
),
10
,
12
, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
sStr.setSpan(
new
AbsoluteSizeSpan(
20
,
true
),
12
,
14
, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
//设置字体大小(相对值,单位:像素) 参数表示为默认字体大小的多少倍 ,0.5表示一半
sStr.setSpan(
new
RelativeSizeSpan(
0
.5f),
14
,
16
, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
//设置字体前景色
sStr.setSpan(
new
ForegroundColorSpan(Color.RED),
16
,
18
, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
//设置字体背景色
sStr.setSpan(
new
BackgroundColorSpan(Color.CYAN),
18
,
20
, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
//设置字体样式: NORMAL正常,BOLD粗体,ITALIC斜体,BOLD_ITALIC粗斜体
sStr.setSpan(
new
StyleSpan(android.graphics.Typeface.NORMAL),
20
,
21
, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
sStr.setSpan(
new
StyleSpan(android.graphics.Typeface.BOLD),
21
,
22
, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
sStr.setSpan(
new
StyleSpan(android.graphics.Typeface.ITALIC),
22
,
23
, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
sStr.setSpan(
new
StyleSpan(android.graphics.Typeface.BOLD_ITALIC),
23
,
24
, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
//设置下划线
sStr.setSpan(
new
UnderlineSpan(),
24
,
26
, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
//设置删除线
sStr.setSpan(
new
StrikethroughSpan(),
26
,
28
, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
//设置上下标
sStr.setSpan(
new
SubscriptSpan(),
28
,
30
, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
sStr.setSpan(
new
SuperscriptSpan(),
30
,
32
, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
//设置字体大小(相对值,单位:像素) 参数表示为默认字体宽度的多少倍 ,2.0f表示默认字体宽度的两倍,即X轴方向放大为默认字体的两倍,而高度不变
sStr.setSpan(
new
ScaleXSpan(
2
.0f),
32
,
34
, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
//设置项目符号
sStr.setSpan(
new
BulletSpan(android.text.style.BulletSpan.STANDARD_GAP_WIDTH,Color.GREEN),
0
,sStr.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
//第一个参数表示项目符号占用的宽度,第二个参数为项目符号的颜色
//设置图片
Drawable drawable = getResources().getDrawable(R.drawable.ic_launcher);
drawable.setBounds(
0
,
0
, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
sStr.setSpan(
new
ImageSpan(drawable),
24
,
26
, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
tv.setText(sStr);
tv.setMovementMethod(LinkMovementMethod.getInstance());
sStr2 =
new
SpannableString(
"电话邮件百度一下短信彩信进入地图"
);
//超级链接(需要添加setMovementMethod方法附加响应)
sStr2.setSpan(
new
URLSpan(
"tel:8008820"
),
0
,
2
, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
//电话
sStr2.setSpan(
new
URLSpan(
"mailto:kejunlu@qq.com"
),
2
,
4
, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
//邮件
sStr2.setSpan(
new
URLSpan(
"http://www.baidu.com"
),
4
,
8
, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //网络
sStr2.setSpan(
new
URLSpan(
"sms:10086"
),
8
,
10
, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
//短信 使用sms:或者smsto:
sStr2.setSpan(
new
URLSpan(
"mms:10086"
),
10
,
12
, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
//彩信 使用mms:或者mmsto:
sStr2.setSpan(
new
URLSpan(
"geo:32.123456,-17.123456"
),
12
,
16
, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
//地图
tv2.setText(sStr2);
tv2.setMovementMethod(LinkMovementMethod.getInstance());
}
效果预览:
以上是原文作者博文,感谢作者提供思路。
android
string
textview
text
view
main
io
写下你的评论吧 !
吐个槽吧,看都看了
会员登录
|
用户注册
推荐阅读
io
TextView的跑马灯效果
单个跑马灯效果其实只需要把TextView的属性设置成下面即可:<?xmlversion"1.0"encoding"utf-8"?>< ...
[详细]
蜡笔小新 2023-09-25 13:37:08
match
Android 自定义控件起步:自定义TextView
转载至:http:blog.csdn.netlmj623565791articledetails24252901不过对原作进行了相关细节优化,所以才有此文..首先我们看一 ...
[详细]
蜡笔小新 2023-09-13 14:11:13
tree
实现可点击展开的 TextView
概述Android开发过程中,经常遇到Textview展示不完全的情况。遇到此情况,通常的处理是:方案一Textview添加android:ellipsize属性,让展示不 ...
[详细]
蜡笔小新 2023-09-11 14:03:25
tree
Android TextView和EditText属性详解
TextView属性详解:autoLink设置 是否当文本为URL链接email电话号码map时,文本显示为可点击的链接。可选值(nonewebemailphonema ...
[详细]
蜡笔小新 2023-09-10 15:59:56
php
后台获取视图对应的字符串
1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ...
[详细]
蜡笔小新 2023-12-13 18:03:01
php
android-代码修改TextView中部分某段文字的颜色
效果如图显示:textView(TextView)findViewById(R.id.textview);SpannableStringBuilderbuildernewSpanna ...
[详细]
蜡笔小新 2023-09-25 15:10:16
import
android自定义Spinner下拉菜单和AutoCompleteTextView自动显示的(下拉列表框)样式
在Android中Spinner就是下拉菜单和AutoCompleteTextView自动显示的样式,它相当于HTML中的<select>标签。Android中提供的SpinnerWid ...
[详细]
蜡笔小新 2023-09-24 17:55:24
post
android textview 多行滚动,scroll 在Android上使TextView可滚动
scroll-在Android上使TextView可滚动我在textview中显示文本似乎太长而不适合进入一个屏幕。我需要让我的TextView可滚动。我能怎么做那? ...
[详细]
蜡笔小新 2023-09-24 16:45:34
match
Android TextView跑马灯效果
AndroidTextView跑马灯效果效果图TextView跑马灯继承TextView重写isFocused方法还有配置singline属性第一种方式:XML布局为:<?xmlversio ...
[详细]
蜡笔小新 2023-09-24 13:58:15
match
【Android每日一讲】2012.11.09 EditText与TextView共舞 - setOnKeyListener事件
1.范例说明EditTextWidget设计的初衷是为了等待User输入而准备的,那么在User输入的同时,又该如何拦截所输入的文字呢?Android的多数Widget都有 ...
[详细]
蜡笔小新 2023-09-24 13:17:40
match
基础二:为什么Button,ImageButton有焦点,textview,imageview没有焦点
我们在电视或者手机上开发的时候,经常会遇到如下情况,在屏幕上布局了多个TextView,ImageView,ImageBut ...
[详细]
蜡笔小新 2023-09-17 17:41:34
const
iOS开发小技巧--即时通讯项目:消息发送框(UITextView)高度的变化; 以及UITextView光标复位的小技巧
1.即时通讯项目中输入框(UITextView)跟随输入文字的增多,高度变化的实现最主要的方法就是监听UITextView的文字变化的方法-(void)textViewDidChange: ...
[详细]
蜡笔小新 2023-09-17 11:12:55
const
Android TextView 属性 textsize 的单位是什么?
首选我们找到源码中的TextView找到textsize属性一个int类型默认值为15初使化自定义属性:我们看一个getDeimensionPixelSiz ...
[详细]
蜡笔小新 2023-09-12 20:38:44
const
在Android应用中显示网址 - Display URL in an Android app
IamtryingtodisplaythecontentofanURLinmyAndroidapplicationinsteadofopeningitinbrow ...
[详细]
蜡笔小新 2023-09-10 14:45:53
const
Android TextView 设置多种颜色
关键词Android、TextView、多种颜色摘要由于项目开发需要,一个TextView为了强调内容,需要显示不同的字体颜色和大小效果图TextView效果图.png方法一int ...
[详细]
蜡笔小新 2023-09-09 12:10:23
晴兮心语6
这个家伙很懒,什么也没留下!
Tags | 热门标签
integer
import
const
cPlusPlus
dagger
heap
scala
heatmap
subset
filter
express
post
cpython
datetime
bitmap
emoji
function
match
php
lua
tree
substring
char
jar
数组
settings
golang
erlang
python3
plugins
RankList | 热门文章
1
铁三Linux取证
2
Store URL Information in Database
3
原生Python与Anaconda发行版共存时pip的使用问题
4
Mysql性能优化札记_mysql
5
蒙特卡洛模拟求正弦函数
6
Handler怎么清除所有未处理的消息
7
Js 三元运算符 三元表达式
8
浏览器衬着机制
9
Python | Numpy matrix . fill()
10
Java Thread interrupt
11
JavaScript 和 Node.js 简史,前端未来走向何方?
12
Dolby TrueHD 和 DTSHD Master Audio 等输出的含义
13
map取第一个元素_Python中的高阶函数filter、map、reduce
14
都说超市陈列有讲究,讲究在哪?
15
CSS框架的优点和不足
PHP1.CN | 中国最专业的PHP中文社区 |
DevBox开发工具箱
|
json解析格式化
|
PHP资讯
|
PHP教程
|
数据库技术
|
服务器技术
|
前端开发技术
|
PHP框架
|
开发工具
|
在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved |
京公网安备 11010802041100号
|
京ICP备19059560号-4
| PHP1.CN 第一PHP社区 版权所有