二、简单控件
1、文本显示
(1)文本内容
💬 Tip:文本内容设置共有三种方式
- 硬编码到XML布局文件
- 硬编码到代码中
- 编码到strings.xml,然后其他文件(如:布局文件、代码中)引用即可
硬编码到XML文件:
-
Layout布局文件:
<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".TextContent"><TextViewandroid:id="@+id/m1"android:layout_width="wrap_content"android:layout_height="wrap_content"tools:ignore="MissingConstraints"android:text="XML硬编码"app:layout_constraintTop_toTopOf="parent"app:layout_constraintBottom_toTopOf="@+id/m2" /><TextViewandroid:id="@+id/m2"android:layout_width="wrap_content"android:layout_height="wrap_content"tools:ignore="MissingConstraints"android:text="@string/tc_m2"app:layout_constraintTop_toBottomOf="@+id/m1"app:layout_constraintBottom_toTopOf="@+id/m3" /><TextViewandroid:id="@+id/m3"android:layout_width="wrap_content"android:layout_height="wrap_content"tools:ignore="MissingConstraints"app:layout_constraintTop_toBottomOf="@+id/m2"app:layout_constraintBottom_toTopOf="@+id/m4" /><TextViewandroid:id="@+id/m4"android:layout_width="wrap_content"android:layout_height="wrap_content"tools:ignore="MissingConstraints"app:layout_constraintTop_toBottomOf="@+id/m3"app:layout_constraintBottom_toBottomOf="parent" /></androidx.constraintlayout.widget.ConstraintLayout>
-
字符串文件:
<resources><string name="app_name">My Application</string><string name="song">My Song</string><string name="tc_m2">xml引用</string><string name="tc_m4">代码引用</string> </resources>
-
代码文件:
public class TextContent extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_text_content);TextView textView = findViewById(R.id.m3);textView.setText("代码硬编码");TextView textView4 = findViewById(R.id.m4);textView4.setText(R.string.tc_m4);} }
总结:常用两种引用方式
- 在XML文件中引用:
@string/***
- 在Java代码中引用:
R.string.***
(2)文本大小
文本大小的三个单位:
- px:也称为图像元素(Pixel),构成图像的基本单位,与设备显示屏相关,单个像素大小不固定,跟随屏幕大小和像素数量的关系变化
-
分辨率(Resolution):指屏幕的垂直和水平方向的像素速率,如果分辨率是
1920*1080
,则垂直方向有1920个像素,水平反向1080个像素- 如果不同尺寸的屏幕,如15.6英寸和17英寸的分辨率都是
1920*1080
,因为单个像素大小不固定,那么17英寸的屏幕的单个像素更大
- 如果不同尺寸的屏幕,如15.6英寸和17英寸的分辨率都是
-
像素密度(dpi):每英寸距离中有多少个像素点
- 像素密度 = c / 屏幕尺寸
-
密度:每平方英尺中有多少像素点
-
- dp/dip:也称独立设备像素,与屏幕尺寸相关,与设备无关,是一种长度的单位,本质还是px
- 特点:相同屏幕尺寸的设备,如果dp相同,则显示效果相同
- sp:与系统设置相关,系统设置中调整文字大小,则其也会相对应变化,是dp的增强版
示例:
-
布局代码:
<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".TextSize"><LinearLayoutandroid:layout_width="409dp"android:layout_height="83dp"android:orientation="horizontal"tools:layout_editor_absoluteX="1dp"tools:layout_editor_absoluteY="1dp"tools:ignore="MissingConstraints"><TextViewandroid:id="@+id/tsPx"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/tsPx"android:textSize="20px"tools:ignore="MissingConstraints" /><TextViewandroid:id="@+id/tsDp"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/tsDp"android:textSize="20dp"tools:ignore="MissingConstraints" /><TextViewandroid:id="@+id/tsSp"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/tsSp"tools:ignore="MissingConstraints" /></LinearLayout></androidx.constraintlayout.widget.ConstraintLayout>
-
Java代码:
public class TextSize extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_text_size);TextView sp = findViewById(R.id.tsSp);//默认sp大小单位sp.setTextSize(20);} }
-
手机 —> 设置 —> 调整文字大小:
(3)文本颜色
文本颜色包括:背景颜色、文字颜色
-
布局代码:
<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".TextColor"><LinearLayoutandroid:layout_width="409dp"android:layout_height="729dp"android:orientation="vertical"tools:layout_editor_absoluteX="1dp"tools:layout_editor_absoluteY="1dp"tools:ignore="MissingConstraints"><TextViewandroid:id="@+id/tcRed"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="@string/tcRed" /><TextViewandroid:id="@+id/tcBlue"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="@string/tcBlue"android:textColor="#3ECEF6"android:background="#FBC118"/></LinearLayout> </androidx.constraintlayout.widget.ConstraintLayout>
-
Java代码:
public class TextColor extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_text_color);TextView tcRed = findViewById(R.id.tcRed);tcRed.setTextColor(Color.RED);tcRed.setBackgroundColor(Color.GRAY);} }
-
效果图:
2、视图基础
待续