首页 > 其他分享 >Android入门教程 | TextView简介(宽高、文字、间距)

Android入门教程 | TextView简介(宽高、文字、间距)

时间:2023-09-12 12:05:32浏览次数:47  
标签:入门教程 layout setTypeface Typeface 宽高 字体 设置 Android TextView

Android入门教程 | TextView简介(宽高、文字、间距)_xml

TextView简介

文字,是我们传达信息的一种常见方式。在安卓应用上显示文字,我们通常使用TextView。 之前我们已经知道如何获取到layout中的TextView,也知道setText()方法可以修改显示的文字。

结合我们实际的生活和学习经验,写字的时候,有哪些方面是可以由我们来控制的? 文本内容;文字颜色;大小;背景等等。

最简单的TextView

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

得益于as强大的提示功能,我们在layout中输入<Te的时候,as可能就弹出了提示。

回车或者鼠标双击TextView即可。

这里关注两个基本属性layout_widthlayout_height。分别表示TextView的宽度和高度设置。 实际上这两个属性是View的属性。TextView继承自View。宽高属性是基础属性,是必须设置的。

宽和高属性

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

  • wrap_content:表示控件宽/高度可由内容来决定。对于TextView,文字越长,它的宽度越宽,直到父view(上层容器)允许的最大宽/高度。
  • match_parent:表示控件宽/高度达到父view允许的最大值。通俗说就是把空间撑满。
  • 我们也可以输入具体数值。比如80dp。 dp是安卓中的一种单位,通常用来规定控件的宽高,间隔距离等等。类似的,表示文字大小的单位,安卓里用sp。
显示文字

显示文字,可能是 TextView 最主要的用法了。在 layout 中设置文字,使用 text 属性。

<TextView
        android:id="@+id/tv1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="新手教程" />

    <TextView
        android:id="@+id/sample_tv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/app_name" />

这里涉及到一个代码风格的问题。上面分别给TextView设置了id。有的人喜欢驼峰风格的,例如sampleTv。

我们可以看到,设置text有多种方式。可以直接把内容写进去(hard code),也可以使用string资源。 直接写内容,as会给一个黄色的警告,建议用户换用@string资源的方式。鼠标移上去as就可以看到as的警告了。

若要使用@string资源,我们先看另一个xml文件,即strings.xml。它在res/values里面。

<string name="app_name">2021</string>

资源命名风格也是小写字母加下划线。

res里面的很多资源,我们可以都可以用R...来找到。

前面我们提到,可以使用 TextView 的 setText 方法来设置文字内容,例如setText("123")。 也可以传入文字资源的名称(编号),类似setText(R.string.app_name)。 需要注意的是,R.string.app_name 本身是一个 int 数字,TextView 会根据这个编号去找对应的资源。 如果这样调用 setText(123),大概率会报下面的这个错误。

android.content.res.Resources$NotFoundException: String resource ID #0x0
    at android.content.res.Resources.getText(Resources.java:360)
文字设置

一般来说,我们会设置TextView文字的颜色,背景等等。

  • textColor 设置字体颜色
  • textSize 设置字体大小
  • textStyle 设置字体样式
textStyle 设置字体样式
  • normal 没有特殊效果,默认值
  • italic 斜体
  • bold 粗体

xml 中设置:

示例1:设置斜体

<TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Fisher"
        android:textColor="#000000"
        android:textStyle="italic" />

示例2:设置斜体并且加粗

<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="bold|italic"
    android:textColor="#000000"
    android:textStyle="bold|italic" />

代码中设置

使用 TextView 的 setTypeface 方法来设置字体效果。

tv1.setTypeface(null, Typeface.NORMAL); // 普通
tv1.setTypeface(null, Typeface.BOLD); // 加粗
tv2.setTypeface(null, Typeface.ITALIC); // 斜体
tv3.setTypeface(null, Typeface.BOLD_ITALIC); // 加粗和斜体

setTypeface(@Nullable Typeface tf, @Typeface.Style int style)有2个参数。 第一个是字体,这里可以忽略。 第二个是效果,有正常,加粗,斜体,加粗和斜体这几种可选。

字体(字库)

默认情况下,TextView 的 typeface 属性支持 sans、serif和monospace 这三种字体。 系统默认 sans 作为文本显示的字体。但这三种字体只支持英文。如果显示中文,无论选择这三种字体中的哪一种,显示效果都是一样的。

layout中设置字体: 使用 android:typeface 来设置字体。

<!-- sans字体 -->
<TextView
    android:text="Hello,World"
    android:typeface="sans" />

<!-- serifs字体 -->
<TextView
    android:text="Hello,World"
    android:typeface="serif" />

<!-- monospace字体 -->
<TextView
    android:text="Hello,World"
    android:typeface="monospace" />

代码中使用字体

tv.setTypeface(Typeface.SERIF);
tv.setTypeface(Typeface.SANS_SERIF);
tv.setTypeface(Typeface.MONOSPACE);

引入字体库 需要引入ttf字体文件。把字体文件放在assets/font目录里。 代码中使用AssetManager来获取字体。

例如:在Activity中设置字体。

TextView tv1 = findViewById(R.id.tv1);
Typeface tf = Typeface.createFromAsset(getAssets(), "fonts/otherFont.ttf");
tv1.setTypeface(tf); // 使用字体

Android入门教程 | TextView简介(宽高、文字、间距)_xml_02

标签:入门教程,layout,setTypeface,Typeface,宽高,字体,设置,Android,TextView
From: https://blog.51cto.com/u_16163452/7444017

相关文章

  • Android初级开发是如何一步步成为高级开发
    前言今年的面试形势不容乐观,竞争愈发激烈,进大厂的难度又增加了。初级程序员的市场价值越来越低,卷死卷活都难找到高薪工作。而相反的高级程序员很多公司一直稀缺,招不到人。这样就形成了两个极端。所以很多人对Android开发现状和前景特别不看好不只是Android,其实做程序这行的,如果不去......
  • Android官方推荐 无需向应用授予的照片选择器工具
    官网链接 https://developer.android.google.cn/training/data-storage/shared/photopicker?hl=en不能跳转链接看这Photopicker照片选择器对话框会显示在您的设备上的媒体文件中。选择一张照片与应用程序分享。图1.照片选择器提供了一个直观的用户界面,用于与您的应用程序分......
  • 基于Android毕业生管理系统的设计与实现-计算机毕业设计源码+LW文档
    一、研究的背景意义高校是培养人才的地方,对智能化发展非常重视,教育部搭建的教育网,专门为教育教学提供帮助。利用教育网的基础搭建各种管理系统,实现校园内信息的有效管理,对教育教学、学生生活、高校宣传等进行综合管理。在毕业生管理中,功能模块的数据通过数据库存储,并为各个模块预......
  • Android程序员掌握这些面试技巧,offer拿到手软
    前言面试的顺利与否,直接决定了你是否能获得心仪的offer以及是否能拿到满意的薪资。如果说,简历是获得面试的通行证的话,那面试无疑是决定你是否能获得这份工作的重中之重。因此为自己的面试认真做个准备还是性价比很高的一件事情。面试前准备的四要素,简历、面经、知己知彼,录音设备。......
  • 安卓Termux搭建web服务器【公网远程手机Android服务器】
    概述Termux是一个Android终端仿真应用程序,用于在Android手机上搭建一个完整的Linux环境,能够实现Linux下的许多基本操作,不需要root权限Termux就可以正常运行。Apache是一个开源网页服务器软件,由于其跨平台和安全性,被广泛使用,是最流行的Web服务器软件之一。我们可以在Android手......
  • Android平台GB28181接入SDK
     华脉智联推出的Android平台GB28181接入SDK,可实现不具备国标音视频能力的Android终端,通过平台注册接入到现有的GB/T28181—2016服务,可用于如执法记录仪、智能安全帽、智能监控、智慧零售、智慧教育、远程办公、明厨亮灶、智慧交通、智慧工地、雪亮工程、平安乡村、生产运输、......
  • Android平台GB28181接入SDK
    华脉智联推出的Android平台GB28181接入SDK,可实现不具备国标音视频能力的Android终端,通过平台注册接入到现有的GB/T28181—2016服务,可用于如执法记录仪、智能安全帽、智能监控、智慧零售、智慧教育、远程办公、明厨亮灶、智慧交通、智慧工地、雪亮工程、平安乡村、生产运输、车载终......
  • Android之Bmob移动后端云服务器
    PS:一般情况下,我们在写android程序的时候,想要实现登录注册功能,可以选择自己用servlet作为服务端来实现过滤没有注册过的用户,但是太麻烦,而且不是随时都可以用的。这里介绍一个移动后端云服务器平台bmob,这不仅可以实现云数据库储存,还可以获取手机验证等,随时随地都很轻松,下面写一个小de......
  • Android之Bmob移动后端云服务器
    PS:一般情况下,我们在写android程序的时候,想要实现登录注册功能,可以选择自己用servlet作为服务端来实现过滤没有注册过的用户,但是太麻烦,而且不是随时都可以用的。这里介绍一个移动后端云服务器平台bmob,这不仅可以实现云数据库储存,还可以获取手机验证等,随时随地都很轻松,下面写一个小de......
  • 想跳出Android内卷困境,简历匹配上大厂你需要做到那些
    内卷化是一个近年来在中文网络上经常出现的词汇,通常用来描述某个领域中过度的竞争和内部消耗。这个概念直观地说就是“向内演化”,更广泛地说,所有没有实质意义的消耗都可以称为内卷。在生活中,许多看似精益求精的重复工作,实际上是在内部范围内施展,而不是向外扩张,这也可以被视为内卷的......