介绍
TextView 是 Android 开发中最常用的小部件之一。它用于在屏幕上显现文本。可是,TextView 有几个较少为人知的功用,对开发人员十分有用。在本博客文章中,咱们将探讨其间的一些功用。
自定义字体
默认状况下,TextView 运用系统字体显现文本。但其实咱们也能够导入咱们自己的字体文件在 TextView 中运用自定义字体。这能够经过将字体文件增加到资源文件夹(res/font 或许 assets)并在 TextView 上以编程办法设置来完成。
要运用自定义字体,咱们需求下载字体文件(或许自己生成)并将其增加到资源文件夹中。然后,咱们能够运用setTypeface()
办法在TextView上以编程办法设置字体。咱们还能够在XML中运用android:fontFamily
特点设置字体。需求注意的是,fontFamily办法只能运用系统预设的字体并且仅对英文字符有用,假如TextView的文本内容是中文的话这个特点设置后将不会有任何作用。
以下是 Android TextView 自定义字体的代码示例:
- 将字体文件增加到 assets 或 res/font 文件夹中。
- 经过以下代码设置字体:
// 字体文件放到 assets 文件夹的状况
Typeface tf = Typeface.createFromAsset(getAssets(), "fonts/myfont.ttf");
TextView tv = findViewById(R.id.tv);
tv.setTypeface(tf);
// 字体文件放到 res/font 文件夹的状况, 需注意的是此办法在部分低于 Android 8.0 的设备上可能会存在兼容性问题
val tv = findViewById<TextView>(R.id.tv)
val typeface = ResourcesCompat.getFont(this, R.font.myfont)
tv.typeface = typeface
在上面的示例中,咱们首先从 assets 文件夹中创立了一个新的 Typeface 目标。然后,咱们运用 setTypeface()
办法将该目标设置为 TextView 的字体。
在上面的示例中,咱们将字体文件命名为 “myfont.ttf”。咱们能够将其替换为要运用的任何字体文件的称号。
自定义字体是 TextView 的强大功用之一,它能够协助咱们创立具有共同外观和感觉的应用程序。别的,咱们也能够经过这种办法完成自定义图标的制作。
AutoLink
AutoLink 能够自动检测文本中的形式并将其转换为可点击的链接。例如,假如 TextView 包括电子邮件地址或 URL,则 AutoLink 将辨认它并使其可点击。此功用使开发人员无需手动创立文本中的可点击链接。
要在 TextView 上启用 AutoLink,您需求将autoLink
特点设置为email
,phone
,web
或all
。您还能够运用Linkify
类设置自定义链接形式。
以下是一个Android TextView AutoLink代码运用示例:
<TextView
android:id="@+id/tv3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:autoLink="web"
android:textColorLink="@android:color/holo_red_dark"
android:text="这是我的个人博客地址: www.geektang.cn" />
在上面的示例中,咱们将 autoLink
特点设置为 web
,这意味着 TextView 将自动检测文本中的 URL 并将其转换为可点击的链接。咱们还将 text
特点将文本设置为 这是我的个人博客地址: www.geektang.cn
。当用户单击链接时,它们将被带到 www.geektang.cn
网站。别的,咱们也能够经过 textColorLink
特点将 Link
色彩为咱们喜欢的色彩。
AutoLink是一个十分有用的功用,它能够协助您更轻松地创立可交互的文本。
对齐形式
对齐形式允许您经过在单词之间增加空格将文本对齐到左右边距,这使得文本更易读且视觉上更具吸引力。您能够将对齐形式特点设置为 inter_word
或 inter_character
。
要运用对齐形式功用,您需求在 TextView 上设置 justificationMode
特点。可是,此功用仅适用于运行 Android 8.0(API 级别 26)或更高版别的设备。
以下是对齐形式功用的代码示例:
<TextView
android:id="@+id/text_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="This is some sample text that will be justified."
android:justificationMode="inter_word"/>
在上面的示例中,咱们将 justificationMode
特点设置为 inter_word
。这意味着 TextView 将在单词之间增加空格,以便将文本对齐到左右边距。
以下是对齐形式功用的显现作用示例:
同样一段文本,上面的设置 justificationMode 为 inter_word ,是不是看起来会比下面的好看一些呢?这个特点一般用于多行英文文本,假如只要一行文本或许文本内容是纯中文字符的话,不会有任何作用。