Android 控件 - TextView

news/2025/1/15 22:45:58/

1、TextView

https://www.bilibili.com/video/BV13y4y1E7pF?p=3

1.1、layout_width、layout_height

match_parent:表示让当前控件的大小和父布局的大小一样,也就是由父布局来决定当前控件的大小
wrap_content:表示让当前的控件大小能够刚好包含里面的内容,也就是由控件内容决定当前控件的大小
数值:比如 200dp 写固定大小

<TextViewandroid:layout_width="200dp"android:layout_height="200dp" />

1.2、id

给控件设置id,方便其他代码获取这个控件

<TextViewandroid:id="@+id/tv_one"android:layout_width="200dp"android:layout_height="200dp" />

获取id为 tv_one的 TextView

TextView tv_one = findViewById(R.id.tv_one);
tv_one.setText("blake");

1.3、text

给TextView设置内容,但是如果java代码修改了这个内容,则java代码修改的优先

<TextViewandroid:id="@+id/tv_one"android:text="test01"android:layout_width="200dp"android:layout_height="200dp" />
TextView tv_one = findViewById(R.id.tv_one);
tv_one.setText("blake");

在这里插入图片描述

1.4、textColor

设置颜色

<TextViewandroid:id="@+id/tv_one"android:text="test01"android:textColor="#F60606"android:layout_width="200dp"android:layout_height="200dp" />

1.5、textStyle

设置字体风格:
normal 无效果
bold 加粗
italic 斜体

<TextViewandroid:id="@+id/tv_one"android:layout_width="200dp"android:layout_height="200dp"android:text="test01"android:textColor="#F60606"android:textStyle="bold" />

1.6、textSize

字体大小,单位一般用sp

<TextViewandroid:id="@+id/tv_one"android:layout_width="200dp"android:layout_height="200dp"android:text="test01"android:textColor="#F60606"android:textSize="30sp"android:textStyle="bold" />

1.7、background

控件背景颜色,可以理解为填充整个控件的颜色,可以是图片

<TextViewandroid:id="@+id/tv_one"android:layout_width="200dp"android:layout_height="200dp"android:text="test01"android:textColor="#F60606"android:textSize="30sp"android:background="#DFA4A4"android:textStyle="bold" />

在这里插入图片描述

1.7、gravity

设置控件中内容的对齐方向
有top、bottom、left、right、center_vertical、center_horizontal…
可以按住ctrl 然后鼠标点击 gravity 查看更多支持

<TextViewandroid:id="@+id/tv_one"android:layout_width="200dp"android:layout_height="200dp"android:text="test01"android:textColor="#F60606"android:textSize="30sp"android:background="#DFA4A4"android:gravity="center"android:textStyle="bold" />

在这里插入图片描述

2、TextView 的text 和 颜色 的正规写法

在实际开发中不会把 直接 写 android:text=“test01”、android:textColor=“#F60606”、android:background=“#DFA4A4”
会在
color.xml和strings.xml中配置好了直接引用
在这里插入图片描述
color.xml
我只添加了red,其他都是默认的

<?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="red">#FFFF0000</color>
</resources>

strings.xml
我只添加了tv_one

<resources><string name="app_name">Demo01</string><string name="tv_one">tv_one_王.blake</string>
</resources>

引用

<TextViewandroid:id="@+id/tv_one"android:layout_width="200dp"android:layout_height="200dp"android:text="@string/tv_one"android:textColor="@color/red"android:textSize="30sp"android:background="@color/black"android:gravity="center"android:textStyle="bold" />

3、带阴影的TextView

https://www.bilibili.com/video/BV13y4y1E7pF?p=4

  • android:shadowColor: 设置阴影颜色,需要与shadowRadius一起使用
  • android:shadowRadius:设置阴影的模糊程度,设置为0.1就变成了字体颜色了,建议使用3.0
  • android:shadowDx:设置阴影在水平方向的偏移,就是水平方向阴影开始的横坐标位置
  • android:shadowDy:设置阴影在竖直方向的偏移,就是竖直方向阴影开始的纵坐标位置
<TextViewandroid:id="@+id/tv_one"android:layout_width="200dp"android:layout_height="200dp"android:gravity="center"android:shadowColor="@color/red"android:shadowDx="10.0"android:shadowDy="10.0"android:shadowRadius="3.0"android:text="@string/tv_one"android:textColor="@color/black"android:textSize="30sp"android:textStyle="bold" />

在这里插入图片描述

4、实现跑马灯效果的TextView

https://www.bilibili.com/video/BV13y4y1E7pF?p=5
就是循环展示一行 string

  • android:singleLine:内容单行显示
  • android:focusable:是否可以获取焦点
  • android:focusableInTouchMode:用于控制视图在触摸模式下是否可以聚焦
  • android:ellipsize:在哪里省略文本
  • android:marqueeRepeatLimit:字幕动画重复的次数

默认是不会跑起来的,有三种方法可以让他跑起来(我用的模拟器自动就能跑起来。。。)
1、android:clickable:可以点击
设置android:clickable=“true”,点击一下能开始跑

<TextViewandroid:id="@+id/tv_one"android:layout_width="match_parent"android:layout_height="200dp"android:gravity="center"android:shadowColor="@color/red"android:shadowDx="10.0"android:shadowDy="10.0"android:shadowRadius="3.0"android:singleLine="true"android:focusable="true"android:focusableInTouchMode="true"android:ellipsize="marquee"android:marqueeRepeatLimit="marquee_forever"android:clickable="true"android:text="@string/tv_one"android:textColor="@color/black"android:textSize="30sp"android:textStyle="bold" />

2、自定义一个TextView

让 isFocused 返回 true

package com.example.demo01;import android.content.Context;
import android.util.AttributeSet;
import android.widget.TextView;import androidx.annotation.Nullable;public class MyTextView extends TextView {public MyTextView(Context context) {super(context);}public MyTextView(Context context, @Nullable AttributeSet attrs) {super(context, attrs);}public MyTextView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {super(context, attrs, defStyleAttr);}@Overridepublic boolean isFocused() {return true;}
}
<com.example.demo01.MyTextViewandroid:id="@+id/tv_one"android:layout_width="match_parent"android:layout_height="200dp"android:gravity="center"android:shadowColor="@color/red"android:shadowDx="10.0"android:shadowDy="10.0"android:shadowRadius="3.0"android:singleLine="true"android:focusable="true"android:focusableInTouchMode="true"android:ellipsize="marquee"android:marqueeRepeatLimit="marquee_forever"android:text="@string/tv_one"android:textColor="@color/black"android:textSize="30sp"android:textStyle="bold" />

3、加一个 requestFocus

<TextViewandroid:id="@+id/tv_one"android:layout_width="match_parent"android:layout_height="200dp"android:gravity="center"android:shadowColor="@color/red"android:shadowDx="10.0"android:shadowDy="10.0"android:shadowRadius="3.0"android:singleLine="true"android:focusable="true"android:focusableInTouchMode="true"android:ellipsize="marquee"android:marqueeRepeatLimit="marquee_forever"android:text="@string/tv_one"android:textColor="@color/black"android:textSize="30sp"android:textStyle="bold"><requestFocus/></TextView>

https://www.bilibili.com/video/BV13y4y1E7pF?p=3
https://www.bilibili.com/video/BV13y4y1E7pF?p=4
https://www.bilibili.com/video/BV13y4y1E7pF?p=5


http://www.ppmy.cn/news/310749.html

相关文章

Android登陆页面

文章目录 一、案例演示二、项目构造三、实现代码1、activity_main.xml2、button_pressed_text.xml3、button_pressed_text2.xml4、colors.xml5、图片6、MainActivity.java 一、案例演示 整个屏幕分为四个模块&#xff0c;由上到下logo第一模块&#xff0c;手机号密码第二模块&…

Adongua的算法模板

文章目录 Adongua的算法模板⭐如何根据数据范围判断大致时间复杂度一、STL1.set2.priority_queue3.STL建堆4.vector5.二分查找&#xff1a;upper_bound与lower_bound6.pbds平衡树7.unique函数8.stringstream解决一行不知道输入多少个数的输入问题9.判断字母大小写及数字 二、数…

实现主页面的布局以及界面的切换_AndroidStudio学习笔记(5)

AndroidStudio学习笔记4 一、主界面的布局&#xff0c;布局的嵌套1、布局管理器的类型&#xff1a;2、布局管理器嵌套的要求&#xff1a;3、实例&#xff08;1&#xff09;根布局管理器为线性布局管理器&#xff08;2&#xff09;线性布局管理器内部嵌套相对布局管理器 二、单击…

【SemiDrive源码分析】【驱动BringUp】37 - LCM 驱动 Bringup 流程

【SemiDrive源码分析】【驱动BringUp】37 - LCM 驱动 Bringup 流程 一、RTOS侧 LCM驱动移植1.1 修改safety-x9plus-ref-serdes.mk:用于添加屏驱动文件夹1.2 修改 dil2-safety-x9plus-ref-serdes.mk: DIL2 中也会用到屏1.3 修改屏驱动文件夹名1.4 修改 c 文件名及对应的结构体…

C++ 建造者模式

简述 建造者模式(Builder Pattern),旨在将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 | 版权声明:一去、二三里,未经博主允许不得转载。 模式结构 UML 结构图: Builder(抽象建造者):为创建一个产品对象的各个部件指定抽象接口。C…

Android开发学习【简单控件】

Android开发学习【Day01】 Android onCreate 详解简单控件文本显示设置文本内容方式设置文本的大小设置文本的颜色 设置视图的宽高直接设置在代码中设置视图宽高 设置视图间距设置视图的对齐方式线性布局LinearLayout线性布局内部的各视图的两种排列方式线性布局的权重 相对布局…

android res目录资源使用说明

一、颜色 颜色资源应该位于标签下&#xff0c;路径res/values/colors.xml。 名字可以随意定义value&#xff0c;如下&#xff1a; <?xml version"1.0" encoding"utf-8"?> <resources> <color name"white">#FFFFFF</colo…

信息学奥赛一本通(C++版) 第三部分 数据结构 第四章 图论算法

总目录详见&#xff1a;https://blog.csdn.net/mrcrack/article/details/86501716 信息学奥赛一本通&#xff08;C版&#xff09; 第三部分 数据结构 第四章 图论算法 http://ybt.ssoier.cn:8088/ 第一节 图的遍历 //1341 【例题】一笔画问题 //在想&#xff0c;是输出欧拉…