美文网首页
TextView 的属性介绍

TextView 的属性介绍

作者: 笔头还没烂 | 来源:发表于2023-02-14 17:03 被阅读0次

    TextView 的属性介绍

    我们先来学习 TextView。我们通过 res/layout/activity_main.xml 来演示。

    1. LinearLayout

      因为 TextView 是一个控件,而控件是需要放到一个容器中,因此,我们需要在最外层先写一个 LinearLayout。用 LinearLayout 这个容器来包裹住我们的 TextView。现阶段我们先大概知道一下 LinearLayout 容器即可。LinearLayout 完整的代码如下所示:

      <?xml version="1.0" encoding="utf-8"?>
      <LinearLayout android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:orientation="vertical"
          xmlns:android="http://schemas.android.com/apk/res/android">
      </LinearLayout>
      
      /*
      PS:基于 IDE 强大的辅助coding功能,当我们在代码编辑区域输入 “<LinearyLayout></”,IDE 会智能地帮我们把代码补充完整,补充后变成“<LinearyLayout></LinearyLayout>”。接着我们在第一个尖括号<>内的末尾处输入属性“ layout_width”,IDE 会自动帮我们加上“ Android SDK Prefix”。如果没有,会报红,使用 IDE 智能提示修复该错误,同样也能将安卓 SDK 前缀补充上去。
      */
      
    2. TextView

      现在,我们可以继续编写我们的 TextView 代码。在<LinearLayout></LinearLayout>中间插入“TextView”的代码。完整代码如下所示:

      <?xml version="1.0" encoding="utf-8"?>
      <LinearLayout android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:orientation="vertical"
          xmlns:android="http://schemas.android.com/apk/res/android">
          
          <TextView
              android:layout_width="200dp"
              android:layout_height="200dp" ></TextView>
          
      </LinearLayout>
                  
      /*
      PS:我们可以看到,基于 IDE 强大的辅助coding功能,当我们在代码编辑区域输入“<TextVie ”,IDE 会帮我们补充 layout_width 和 layout_height 两个属性,如下所示:
      
      <TextView
              android:layout_width=""
              android:layout_height=""
              
      我们给代码末尾处补最后一个尖括号>,则会自动帮我们补充完整代码,如下所示:
      
      <?xml version="1.0" encoding="utf-8"?>
      <LinearLayout android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:orientation="vertical"
          xmlns:android="http://schemas.android.com/apk/res/android">
          
          <TextView
              android:layout_width=""
              android:layout_height=""></TextView>
          
      </LinearLayout>
      
      这里,需要我们为 layout_width 和 layout_height 赋上具体的值。可选的值有以下几个:
      (1)具体的值,如“200dp”;以指定具体的长度。
      (2)match_parent;
      (3)wrap_content;
      这里说说第二和第三的区别:
      “match_parent ”是根据他的父视图来定它本身的大小。如果 layout_width 赋上 match_parent,则它的父视图有多宽,它自己就有多宽;
      而 “wrap_content” 则是根据 textView 的内容而定,前提是不能超过它的父视图的宽度,在此前提下,它的内容越多,则越宽。
      */
      

      除了 layout_width 和 layout_height 两个属性外, textView 还有其他属性,常见属性如下所示:

      (1)id 和 text。代码如下所示:

      <?xml version="1.0" encoding="utf-8"?>
      <LinearLayout android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:orientation="vertical"
          xmlns:android="http://schemas.android.com/apk/res/android">
          
          <TextView
              android:id="@+id/tv_one"
              android:text="Hello World"
              android:layout_width="200dp"
              android:layout_height="200dp"></TextView>
                  
      </LinearLayout>
                  
      /*
      当我们输入id的时候,IDE 会自动帮我们为其id赋值为"@+id/",我们只需在反斜杠“/”后面加上我们自定义的标识符作为其id 即可。这里我们定义的 id 标识符是 tv_one.
      
      这里定义的 id 有什么用呢?
      在我们的java中,一切控件皆对象。
      我们可以在 MainActivity 中通过我们自义定的 id 去获取该对象。MainActivity 代码如下所示:
      
      package com.example.myapplication;
      
      import androidx.appcompat.app.AppCompatActivity;
      import android.os.Bundle;
      import android.view.View;
      import android.widget.TextView;
      
      public class MainActivity extends AppCompatActivity {
      
          @Override
          protected void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
              setContentView(R.layout.activity_main);
           
           //通过 tv_one 获取 textView,此时 tv_one 就指向 textView 这个控件
              TextView tv_one = findViewById(R.id.tv_one);
              //拿到 textView 这个控件之后,我们可以通过 tv_one 来对我们的 textView 的一些属性进行设置,如设置 textView 的 text 属性
              tv_one.setText("Hello Android");
              //这里设置的 text 与我们在 res/layout/activity_main.xml 设置的 text 是一样的效果,并且代码设置的会把我们 xml 设置的 text 覆盖掉。因此,运行的效果是 textView 的文本显示的是 "Hello Android",而不是 xml 设置的"Hello World"
          }
      }
      
      
      */
      

      (2)textColor:设置字体颜色。代码如下所示:

      <TextView
              android:id="@+id/tv_one"
              android:text="Hello World"
              android:textColor="#FFFF0000"
              android:layout_width="200dp"
              android:layout_height="200dp"></TextView>
      

      textColor 的设置是先写一个“#”号,后面跟8位。每两位代表一层含义:其中第1位和第2位表示透明度;第3位和第4位表示红色;第5位和第6位表示绿色;第7位和第8位表示蓝色。以第1位和第2位来举例:00代表透明,FF代表不透明。

      (3)textStyle:设置字体风格,三个可选值:normal(无效果,默认值)、bold(加粗)、italic(斜体)。代码如下所示:

      <TextView
              android:id="@+id/tv_one"
              android:text="Hello World"
              android:textColor="#FF000000"
              android:textStyle="bold"
              android:layout_width="200dp"
              android:layout_height="200dp"></TextView>
      

      (4)textSize:字体大小,单位一般是sp。代码如下所示:

      <TextView
              android:id="@+id/tv_one"
              android:text="Hello World"
              android:textColor="#FF000000"
              android:textStyle="bold"
              android:textSize="40sp"
              android:layout_width="200dp"
              android:layout_height="200dp"></TextView>
      

      (5)background:控件的背景颜色,可以理解为填充整个控件的颜色,可以是图片。跟 textColor 一样,也可以用“#”号+8位数字来设置想要的颜色。代码如下所示:

      <TextView
              android:id="@+id/tv_one"
              android:text="Hello World"
              android:textColor="#FF000000"
              android:textStyle="bold"
              android:textSize="40sp"
              android:background="#FF00FF00"
              android:layout_width="200dp"
              android:layout_height="200dp"></TextView>
      

      (6)gravity:设置控件内容的对齐方向,TextView 中是文字,ImageView 中是图片等等。代码如下:

      <TextView
              android:id="@+id/tv_one"
              android:text="Hello World"
              android:textColor="#FF000000"
              android:textStyle="bold"
              android:textSize="40sp"
              android:background="#FF00FF00"
              android:gravity="center"
              android:layout_width="200dp"
              android:layout_height="200dp"></TextView>
      

      小结:

      (1)学习一个控件的属性,需结合代码,一个个尝试,看看具体是什么效果即可。

      (2)给属性赋值时,一般不直接赋值,像 上面代码中的 textColor、backgroundColor、text 都是直接赋值,不方便后续的维护。一般是将其抽取成字符串、填写在 res/values/colors.xml 或者是 res/values/strings.xml。例如,我们将字符串"Hello Android FirstDay" 抽取到 res/values/strings.xml 中,并给它命名为"tv_one_text"。strings.xml 代码如下:

      <resources>
          <string name="app_name">My Application</string>
          <string name="tv_one_text">Hello Android FristDay</string>
      </resources>
      

      则 res/layout/activity_main.xml 中的 TextView 代码可修改为:

      <TextView
              android:id="@+id/tv_one"
              android:text="@string/tv_one_text"
              android:textColor="#FF000000"
              android:textStyle="bold"
              android:textSize="40sp"
              android:background="#FF00FF00"
              android:gravity="center"
              android:layout_width="200dp"
              android:layout_height="200dp"></TextView>
      

      当我们按住 ctrl 键,鼠标悬停在 text 属性上,可以通过点击跳转到 strings.xml 查看到其对应的字符串的值。同理,我们也可将 background、textColor 的值都抽取到 res/values/colors.xml 中。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>
          <color name="green">#FF00FF00</color>
      </resources>
      

      则 res/layout/activity_main.xml 中的 TextView 代码可修改为:

      <TextView
              android:id="@+id/tv_one"
              android:text="@string/tv_one_text"
              android:textColor="@color/black"
              android:textStyle="bold"
              android:textSize="40sp"
              android:background="@color/green"
              android:gravity="center"
              android:layout_width="200dp"
              android:layout_height="200dp"></TextView>
      

    以上,感谢阅读。

    相关文章

      网友评论

          本文标题:TextView 的属性介绍

          本文链接:https://www.haomeiwen.com/subject/fobekdtx.html