Android入门教程 | TextView简介(宽高、文字、间距)
TextView简介
文字,是我们传达信息的一种常见方式。在安卓应用上显示文字,我们通常使用TextView。 之前我们已经知道如何获取到layout中的TextView,也知道setText()
方法可以修改显示的文字。
结合我们实际的生活和学习经验,写字的时候,有哪些方面是可以由我们来控制的? 文本内容;文字颜色;大小;背景等等。
最简单的TextView:
得益于as强大的提示功能,我们在layout中输入
文章图片
回车或者鼠标双击TextView即可。
这里关注两个基本属性
layout_width
和layout_height
。分别表示TextView的宽度和高度设置。 实际上这两个属性是View的属性。TextView继承自View。宽高属性是基础属性,是必须设置的。宽和高属性 layout_width/layout_height 可以填入wrap_content,match_parent或者具体的数值。
- wrap_content:表示控件宽/高度可由内容来决定。对于TextView,文字越长,它的宽度越宽,直到父view(上层容器)允许的最大宽/高度。
- match_parent:表示控件宽/高度达到父view允许的最大值。通俗说就是把空间撑满。
- 我们也可以输入具体数值。比如80dp。 dp是安卓中的一种单位,通常用来规定控件的宽高,间隔距离等等。类似的,表示文字大小的单位,安卓里用sp。
这里涉及到一个代码风格的问题。上面分别给TextView设置了id。有的人喜欢驼峰风格的,例如sampleTv。
我们可以看到,设置text有多种方式。可以直接把内容写进去(hard code),也可以使用string资源。 直接写内容,as会给一个黄色的警告,建议用户换用@string资源的方式。鼠标移上去as就可以看到as的警告了。
若要使用@string资源,我们先看另一个xml文件,即strings.xml。它在res/values里面。
2021
资源命名风格也是小写字母加下划线。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 粗体
示例1:设置斜体
效果:
文章图片
示例2:设置斜体并且加粗
效果:
文章图片
代码中设置
使用 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
来设置字体。
代码中使用字体:
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);
// 使用字体
间距设置
margin
和 padding
其实是 View 的属性。这里我们拿 TextView 来看一下。以后想显示一些文字的时候,我们首先会想起的是TextView。
文章图片
【Android入门教程 | TextView简介(宽高、文字、间距)】Android零基础入门教程视频参考
推荐阅读
- android第三方框架(五)ButterKnife
- Android中的AES加密-下
- 带有Hilt的Android上的依赖注入
- android|android studio中ndk的使用
- Android事件传递源码分析
- RxJava|RxJava 在Android项目中的使用(一)
- Android7.0|Android7.0 第三方应用无法访问私有库
- 深入理解|深入理解 Android 9.0 Crash 机制(二)
- android防止连续点击的简单实现(kotlin)
- Android|Android install 多个设备时指定设备