TextView是View体系中的一员,继承自View,用于在界面中展示文字。
基本用法:
<TextViewandroid:id="@+id/textview"android:layout_width="wrap_content"android:layout_height="wrap_content"android:padding="10dp"android:text="Hello World!"android:textSize="16sp" />
1. 设置点击事件:
findViewById(R.id.textview).setOnClickListener(v -> {Toast.makeText(getApplicationContext(), "click", Toast.LENGTH_SHORT).show();});
2.设置文字颜色1):
android:textColor="@color/black"
上面方式设置的颜色只有一种状态。如果需要TextView展示时一种颜色,按下时展示另外一种颜色,可以通过设置selector实现。
设置文字颜色2):
在res目录下创建color文件夹,在次文件夹下,可以创建颜色选择器selector文件。
text_selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"><item android:color="@android:color/holo_red_light" android:state_pressed="true" /><item android:color="@android:color/holo_red_dark" />
</selector>
颜色选择器使用:正常显示一种颜色,按下显示另外一种颜色。
3.设置背景色
1)可以是颜色值:
android:background="@color/green"
2)也可以是drawable
android:background="@drawable/ic_launcher_background"
3)以上两种方式只能设置单一背景色,通过selector可以设置按下时的颜色。
在drawable目录下创建xml文件:
text_bg.xml
需要注意的是:需要引用drawable,需要设置state_press的值,false正常显示,true按下显示
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"><item android:drawable="@drawable/color_normal" android:state_pressed="false"/><item android:drawable="@drawable/color_press" android:state_pressed="true"/></selector>
在color.xml定义drawable
<drawable name="color_normal">#eeeeee</drawable><drawable name="color_press">#6592f6</drawable>
TextView中引入:
<TextViewandroid:id="@+id/textview"android:layout_width="wrap_content"android:layout_height="wrap_content"android:padding="10dp"android:textColor="@color/text_selector"android:text="Hello World!"android:background="@drawable/text_bg"android:textSize="16sp" />
4. autoLink 自动链接
当输入的是手机号时,autoLink设置为phone。点击文本时会自动跳转到拨号界面。
android:text="10086"
android:autoLink="phone"
邮箱格式:会自动调整到邮箱服务界面:
android:text="10086@qq.com"android:autoLink="email"
超链接:会自动打开系统的浏览器访问该网址
android:text="www.baidu.com"android:autoLink="web"
5. android:gravity。设置文本显示格式,居左,居中居右等。
android:gravity="left"android:gravity="center"android:gravity="right"