TextView在Android中一般用来显示文本,今天学习一下,如何利用TextView来实现我们制作我们想要的文本效果(下划线、中划线、跑马灯式文字平移…)
1、常见属性
有一些和上一节学过的属性相同的属性我就不再列举:Android 初学一 之 LinearLayOut 与 RelativeLayOut

android:text="@string/TextViewText_0"   <!--设置文本的内容-->
        android:textColor="#000000"             <!--设置文本的颜色,取色方式看《Android 初学一》-->
        android:textSize="24sp"                 <!--设置文本的大小,单位要选SP不是dp-->
        android:textStyle="bold"                <!--设置文本的样式(有粗体bold,正常normal,斜体italic三种样式)-->
        android:textAlignment="viewEnd"         <!--设置文本的对齐方式,有很多,此处不一一列举-->
        android:textIsSelectable="true"         <!--设置文本是否能被选择,默认为false-->

在这里常见属性主要一说的就是设置文本内容,暂时通过前台代码来看的就是两种方式:

方式一、就是通过直接复制来实现TextView中的内容,例如android:text=“Gh”。

方式二、就是引用res->values->strings.xml中的内容来显示Textview中的内容,如图:

android 多个 textview android中textview_4s


在strings.xml中写好以后,就可以直接引用, 例如:android:text="@string/TextViewText_0"。以上代码就是采用这种方式。

2、阴影

<TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="15dp"
        <!------------------------阴影代码------------------------------->
        android:shadowColor="#F9F900" <!--设置阴影的颜色-->
        android:shadowDx="10.0"       <!--设置阴影的y轴方向的偏移程度-->
        android:shadowDy="10.0"       <!--设置阴影的y轴方向的偏移程度-->
        android:shadowRadius="3.0"    <!--设置阴影的模糊程度-->
        <!-------------------------------------------------------------->
        android:text="gh is need to learn"
        android:textColor="#4A4AFF"
        android:textSize="30sp" />

3、引入图片、在TextView中,如果我们想在文字旁边放置一张图片,如果不用drawable的话,是非常麻烦的,因为你需要添加一张图片可能需要再添加一个控件,如果只要一张还好,如果很多的话是非常麻烦的。这里我介绍一下如何使用drawable引入图片。我以这张图片为例:

android 多个 textview android中textview_java_02


先将这张图片引入到Android Studio 中,(直接复制到res->mipmap文件夹下(我把图片的名字设置成position))。如图:

android 多个 textview android中textview_4s_03


然后直接上代码。

<TextView
        android:id="@+id/Textview_2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:text="@string/TextViewText_0"
        android:textColor="#000000"
        android:textSize="24sp"
        <!------------------------引用图片------------------------------->
        android:drawableRight="@mipmap/position"  <!--这里直接引用那张图片-->
        android:drawablePadding="10dp"    <!--设置图片和文字的距离-->
         <!-------------------------------------------------------------->
        android:maxLines="1"
        android:ellipsize="end">

效果如图所示:

android 多个 textview android中textview_android 多个 textview_04


4、文字跑马灯

往往在界面设计的时候我们需要用到动态显示文字,这个时候先直接上代码。

<TextView
        android:id="@+id/Textview_6"
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:text="@string/TextViewText_0"
        android:textColor="#000000"
        android:textSize="24sp"
        <!------------------------文字跑马灯---------------------------->
        android:ellipsize="marquee" <!--设置为循环模式-->
        android:singleLine="true"   <!--设置单行-->
        android:marqueeRepeatLimit="marquee_forever" <!--设置永远循环-->
        android:focusable="true"
        android:focusableInTouchMode="true">
       <!-------------------------------------------------------------->
    </TextView>

显示效果如图:(因为第一次生成GIF,导致图片效果比正常速度快了好几倍)

生成的方式在此记录一下:首先用屏幕录取软件录取一段视频,然后再使用在线转化工具生成Gif。

在线生成Gif工具

android 多个 textview android中textview_Android_05


5、文字下划线

文字下划线产生的方式有两种:

方式一:

前台代码:

<TextView
        android:id="@+id/Textview_4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:text="@string/TextViewText_0"
        android:textColor="#000000"
        android:textSize="24sp"
        android:maxLines="1"
        android:ellipsize="end">
    </TextView>

后台代码:

private TextView myTextView4;
   	    //主要依靠这部分后台代码实现
        myTextView4 = findViewById(R.id.Textview_4);
        myTextView4.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG);

方式二:

<TextView
        android:id="@+id/Textview_5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:text="@string/TextViewText_0"
        android:textColor="#000000"
        android:textSize="24sp"
        android:maxLines="1"
        android:ellipsize="end">
    </TextView>

后台代码:

private TextView myTextView5;
   	    //主要依靠这部分后台代码实现
        myTextView5 = findViewById(R.id.Textview_5);
        myTextView5.setText(Html.fromHtml("<u>gh is need to learn</u>"));

两种方式的显示效果如图所示:

android 多个 textview android中textview_Android_06

6、文字中划线

<TextView
        android:id="@+id/Textview_3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:text="@string/TextViewText_0"
        android:textColor="#000000"
        android:textSize="24sp"
        android:maxLines="1"
        android:ellipsize="end">
    </TextView>

后台代码:

private TextView myTextView3;
        myTextView3 = findViewById(R.id.Textview_3);
        //主要依靠这部分后台代码实现
        myTextView3.getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG);
        myTextView3.getPaint().setAntiAlias(true);//去除锯齿

显示效果如图所示:

android 多个 textview android中textview_android 多个 textview_07


7、AutoLink

AutoLink 相当于在Android系统中的一个超链接,下面我们将TextView中的内容链接到,电话试试。

下面给出前端代码:

<TextView
        android:id="@+id/Textview_7"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="15dp"
        android:shadowColor="#F9F900"
        android:shadowDx="10.0"
        android:shadowDy="10.0"
        android:shadowRadius="3.0"
        android:text="12367823456"
        android:autoLink="phone"
        android:textColor="#4A4AFF"
        android:textSize="30sp" />

后台代码:

private TextView myTextView7;
        myTextView7=findViewById(R.id.Textview_7);
        myTextView7. setMovementMethod(LinkMovementMethod.getInstance());

运行Android虚拟机之后效果如图所示:

android 多个 textview android中textview_android 多个 textview_08


总结:TextView可以用在登录页面中的账户框和密码框中,也可以用来存放接收到的信息。