Android TextView详解(一)

TextView简介

在Android应用中,我们通常使用TextView向用户展示文本信息,并可设置文字的字体大小、颜色、背景色等基本样式,本篇我们将学习TextView的一些常用操作和属性。

下面是使用TextView实现的一些效果,我们接下来看实现方式。

普通TextView的使用

<!--text:用于设置显示文本,文本通常先在values/strings.xml中定义-->
<!--textColor:用于设置文本颜色,颜色通常先在values/colors.xml中定义-->
<!--textSize:用于设置文字大小,单位通常为sp-->
<TextView
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_marginTop="20dp"
     android:text="普通文本"
     android:textColor="#0000ff"
     android:textSize="14sp" />

这里需要注意两个基本属性layout_width和layout_height,分别表示TextView的宽度和高度设置。 

layout_width和layout_height可以填入wrap_content,match_parent或者具体的数值。

  • wrap_content宽高自适应文字内容长度,文字越长,它的宽度越宽,直到父容器允许的最大宽/高度。
  • match_parent宽高撑满父容器。
  • 输入具体数值比如100dp,单位为dp。 

TextView加边框、背景色和渐变背景色都是通过设置background属性实现,三种情况拥有相同的布局结构,唯一不同的就是background设置的属性文件不同。布局如下:

<TextView
            android:id="@+id/textView3"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dp"
            android:background="@drawable/jianbian"
            android:padding="5dp"
            android:text="带渐变色背景和边框的文本"
            android:textColor="#ffffff" />

带边框的TextView的background属性使用的drawable文件border.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <corners android:radius="5dp"></corners>
    <stroke android:width="1dp" android:color="#ff0000"></stroke>
</shape>

带背景色的TextView的background属性使用的drawable文件bg_color.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="#ff0000"></solid>
    <corners android:radius="5dp"></corners>
</shape>

带渐变色背景和边框的TextView的background属性使用的drawable文件jianbian.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <!--corners设置圆角,radius为4个角设置相同的圆角,还可以设置单独的圆角,使用topLeftRadius、topRightRadius等-->
    <corners android:radius="5dp"></corners>
    <!--stroke设置边框,width为边框宽度,color边框颜色-->
    <stroke android:width="1dp" android:color="#ff0000"></stroke>
    <!--gradient设置渐变色,startColor为开始颜色,endColor为结束颜色,type为渐变类型,此处为线性渐变-->
    <gradient android:startColor="#59cde9" android:endColor="#0a2a88" android:type="linear"></gradient>
    <!--solid为填充色,即背景色,-->
    <!--<solid android:color="#ff0000"></solid>-->
</shape>

文字上方设置图片

<TextView
            android:id="@+id/textView5"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dp"
            android:drawableTop="@android:drawable/sym_def_app_icon"
            android:padding="5dp"
            android:text="文字上方设置图片"
            android:textColor="#000000" />

可跳转到网页:https://www.baidu.com/

<!--autoLink:是否自动查找url、邮件地址等链接并将其转换为可点击的链接。默认值为"none",禁用此功能。
        可取值如下:
        all:匹配所有模式(相当于 web|email|phone|map)。
        email:匹配电子邮件地址。
        map:匹配地图地址。弃用:
        none:不匹配任何模式(默认)。
        phone:匹配电话号码。
        web:匹配 Web URL
        -->
        <TextView
            android:id="@+id/textView6"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dp"
            android:autoLink="web"
            android:padding="5dp"
            android:text="可跳转到网页:https://www.baidu.com/"
            android:textColor="#000000" />

可跳转到电话:15894483722

<TextView
            android:id="@+id/textView7"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dp"
            android:autoLink="phone"
            android:padding="5dp"
            android:text="可跳转到电话:15894483722"
            android:textColor="#000000" />

以上为示例程序所展示的效果的代码实现,下面总结一下TextView常用的一些属性:

android:autoLink

autoLink:是否自动查找url、邮件地址等链接并将其转换为可点击的链接。默认值为"none",禁用此功能。 可取值如下:

all:匹配所有模式(相当于 web|email|phone|map)。

email:匹配电子邮件地址。

map:匹配地图地址。弃用。

none:不匹配任何模式(默认)。

phone:匹配电话号码。

web:匹配 Web URL。

android:drawableTop、android:drawableBottom系列

可在文本的不同方向上绘制显示对象。

android:gravity

文本小于视图长度时的对齐方式,可设置居中、居左、居右等。

android:singleLine

始终显示成单行文本。

android:textColor

设置文本颜色。

android:text

设置要显示的文本。

android:textSize

设置字体大小,单位通常是sp。

android:layout_margin系列

设置外边距,一般用于设置与其他元素的间距。

android:layout_padding系列

设置内边距,当设置了边框、背景色等,一般需要设置内边距,否则,显示出来的效果会比较丑。

原创不易,点个赞再走吧。

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android 中的 SpannableString 是一个可变的字符串类型,可以在其中添加格式化效果,如字体颜色、字体大小、下划线、删除线等等。SpannableString 可以用于 TextView 中显示富文本,也可以用于 EditText 中实现输入框中不同格式的文字。 创建 SpannableString 可以通过以下方法创建 SpannableString: ``` SpannableString spannableString = new SpannableString("Hello, World!"); ``` 添加格式化效果 可以使用 setSpan() 方法向 SpannableString 中添加格式化效果,该方法的参数包括效果类型和效果的起始位置和终止位置。以下是一些常用的效果类型: 1. ForegroundColorSpan:设置文字颜色 ``` ForegroundColorSpan colorSpan = new ForegroundColorSpan(Color.RED); spannableString.setSpan(colorSpan, 0, 5, Spanned.SPAN_INCLUSIVE_EXCLUSIVE); ``` 2. BackgroundColorSpan:设置文字背景颜色 ``` BackgroundColorSpan bgSpan = new BackgroundColorSpan(Color.YELLOW); spannableString.setSpan(bgSpan, 6, 12, Spanned.SPAN_INCLUSIVE_EXCLUSIVE); ``` 3. RelativeSizeSpan:设置文字大小 ``` RelativeSizeSpan sizeSpan = new RelativeSizeSpan(1.5f); spannableString.setSpan(sizeSpan, 13, 19, Spanned.SPAN_INCLUSIVE_EXCLUSIVE); ``` 4. StrikethroughSpan:添加删除线 ``` StrikethroughSpan strikethroughSpan = new StrikethroughSpan(); spannableString.setSpan(strikethroughSpan, 20, 25, Spanned.SPAN_INCLUSIVE_EXCLUSIVE); ``` 5. UnderlineSpan:添加下划线 ``` UnderlineSpan underlineSpan = new UnderlineSpan(); spannableString.setSpan(underlineSpan, 26, 32, Spanned.SPAN_INCLUSIVE_EXCLUSIVE); ``` 6. StyleSpan:设置字体样式 ``` StyleSpan styleSpan = new StyleSpan(Typeface.BOLD_ITALIC); spannableString.setSpan(styleSpan, 33, 39, Spanned.SPAN_INCLUSIVE_EXCLUSIVE); ``` 7. ClickableSpan:设置可点击效果 ``` ClickableSpan clickableSpan = new ClickableSpan() { @Override public void onClick(View widget) { // 点击事件处理 } }; spannableString.setSpan(clickableSpan, 40, 46, Spanned.SPAN_INCLUSIVE_EXCLUSIVE); ``` 除了以上几种,还有很多其他的效果类型可以使用,具体可以参考 Android 官方文档。 显示 SpannableString 可以将 SpannableString 直接设置给 TextView 或 EditText 的 text 属性来显示富文本,也可以使用 setText() 方法来设置。 ``` textView.setText(spannableString); ``` 注意:如果使用 ClickableSpan 添加了点击效果,需要将 TextView 或 EditText 设置为可点击,否则点击事件不会生效。 ``` textView.setMovementMethod(LinkMovementMethod.getInstance()); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值