Android应用开发学习笔记——目录索引
本章介绍文本视图(TextView)的显示,包括:设置文本内容、设置文本大小、设置文本显示颜色。
一、设置TextView显示内容
-
Layout XML文件中设置
如:res/layout/activity_main.xml中通过属性:
android:text 设置文本
<TextViewandroid:id="@+id/textView"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Hello World!"
-
Java 代码中设置
调用文本视图的setText()方法设置
TextView textView = (TextView) findViewById(R.id.textView);
textView.setText("Hello World!");
-
strings.xml中设置
Android Studio不推荐在xml布局文件直接Hardcoded string
推荐在/res/values目录strings.xml文件添加,然后使用@string引用
<resources><string name="app_name">TextView</string><string name="textView_hello">Hello World!</string>
</resources>
res/layout/activity_main.xml
<TextViewandroid:id="@+id/textView"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/textView_hello"
java代码中
TextView textView = (TextView) findViewById(R.id.textView);
textView.setText(R.string.textView_hello);
layout XML或者java代码中都从string.xml引用字符串资源,以后要显示其他内容,也只需要修改string.xml一个地方即可,Android Studio推荐使用这种方法。
二、设置TextView显示大小
-
Layout.xml文件中设置
android:textSize设置文本大小
<TextViewandroid:id="@+id/textView"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="30sp"
发现输入数字中有一个下来列表:
sp:专门用来设置字体大小(和系统设置中字体大小相关,跟随系统字体一起变化)
px:像素,屏幕的最小显示单位
pt:磅,1/72英寸
mm:毫米
in:英寸,1英寸 = 2.54厘米 = 25.4毫米
dp:与设备无关的显示单位,有时也写作dip
其中常用的是px、dp和sp三种。
dp和px的转换:
int dip2px(Context context, float dp) {float scale = context.getResources().getDisplayMetrics().density;return (int) (dp * scale + 0.5f);
}
int px2dip(Context context, int px) {float scale = context.getResources().getDisplayMetrics().density;return (int) (px / scale + 0.5f);
}
-
Java 代码中设置
调用文本视图的setTextSize()方法设置
TextView textView = (TextView) findViewById(R.id.textView);
textView.setTextSize(30);
setTextSize()使用的是sp(COMPLEX_UNIT_SP)
public void setTextSize(float size) {setTextSize(TypedValue.COMPLEX_UNIT_SP, size);}
手机【设置】菜单->【显示】->【字体与显示大小】调整字体大小,可以看到使用sp文本字体大小会跟随系统变化,使用dp的不会变化。
三、设置TextView显示颜色
-
Layout.xml文件中设置
android:textColor设置文本大小
XML 中android:textColor默认是不透明(也就是alpha = 0xFF),在前面要加“#”后面是十六进制RGB
<TextViewandroid:id="@+id/textView"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="30sp"android:text="@string/textView_hello"android:textColor="#FF0000"
-
Java 代码中设置
调用文本视图的setTextColor()方法设置
Java代码中默认是透明(也就是alpha = 0x00),格式为ARGB,使用十六进制0x开头
如:红色0xFFFF0000、绿色0xFF00FF00、蓝色0xFF0000FF、白色0xFFFFFFFF
TextView textView = (TextView) findViewById(R.id.textView);
textView.setTextColor(0xFFFF0000);
Color类中定义了12中颜色,可以使用
Color类定义 | 值 | 说明 | Color类定义 | 值 | 说明 |
BLACK | 0xFF000000 | 黑色 | GREEN | 0xFF00FF00 | 绿色 |
DKGRAY | 0xFF444444 | 深灰 | BLUE | 0xFF0000FF | 蓝色 |
GRAY | 0xFF888888 | 灰色 | YELLOW | 0xFFFFFF00 | 黄色 |
LTGRAY | 0xFFCCCCCC | 浅色 | CYAN | 0xFF00FFFF | 青色 |
WHITE | 0xFFFFFFFF | 白色 | MAGENTA | 0xFFFF00FF | 品红 |
RED | 0xFFFF0000 | 红色 | TRANSPARENT | 0 | 透明 |
TextView textView = (TextView) findViewById(R.id.textView);
textView.setTextColor(Color.BLUE);
-
colors.xml中设置
/res/values目录colors.xml文件添加
<?xml version="1.0" encoding="utf-8"?>
<resources><color name="purple_200">#FFBB86FC</color><color name="purple_500">#FF6200EE</color><color name="purple_700">#FF3700B3</color><color name="teal_200">#FF03DAC5</color><color name="teal_700">#FF018786</color><color name="black">#FF000000</color><color name="white">#FFFFFFFF</color>
</resources>
res/layout/activity_main.xml引用@color/自定义颜色名称
<TextViewandroid:id="@+id/textView"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/textView_hello"android:textColor="@color/purple_200"
java代码中引用R.color.颜色
TextView textView = (TextView) findViewById(R.id.textView);
textView.setTextColor(R.color.purple_200);
-
设置背景颜色
Layout XML文件中android:background设置背景
<TextViewandroid:id="@+id/textView"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/textView_hello"android:textColor="@color/purple_200"android:background="#111111"
java代码中
setBackgroundColor(),参数:使用Color类或者十六进制
TextView textView = (TextView) findViewById(R.id.textView);
textView.setBackgroundColor(Color.BLUE);
// 或者
textView.setBackgroundColor(0xFF0000FF);
setBackgroundResource(), 参数:R.color.颜色,R.drawable.
TextView textView = (TextView) findViewById(R.id.textView);
textView.setBackgroundResource(R.color.black);
注意: XML属性android:background和Java方法 setBackgroundResource()用来设置控件的背景,不单背景颜色,还可以使用图片背景。图片放到/res/drawable,XML中引用方法@drawable/
<TextViewandroid:id="@+id/textView"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/textView_hello"android:background="@drawable/ic_launcher_background"
java 代码使用R.drawable.
TextView textView = (TextView) findViewById(R.id.textView);
textView.setBackgroundResource(R.drawable.ic_launcher_background);
四、TextView控件测试程序
java:
MainActivity.java
源码
百度网盘链接:百度网盘 请输入提取码 提取码:test
点此查看Android应用开发学习笔记的完整目录