https://www.bilibili.com/video/BV13y4y1E7pF?p=3
match_parent:表示让当前控件的大小和父布局的大小一样,也就是由父布局来决定当前控件的大小
wrap_content:表示让当前的控件大小能够刚好包含里面的内容,也就是由控件内容决定当前控件的大小
数值:比如 200dp 写固定大小
<TextView
android:layout_width="200dp"
android:layout_height="200dp" />
给控件设置id,方便其他代码获取这个控件
<TextView
android: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");
给TextView设置内容,但是如果java代码修改了这个内容,则java代码修改的优先
<TextView
android: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");
设置颜色
<TextView
android:id="@+id/tv_one"
android:text="test01"
android:textColor="#F60606"
android:layout_width="200dp"
android:layout_height="200dp" />
设置字体风格:
normal 无效果
bold 加粗
italic 斜体
<TextView
android:id="@+id/tv_one"
android:layout_width="200dp"
android:layout_height="200dp"
android:text="test01"
android:textColor="#F60606"
android:textStyle="bold" />
字体大小,单位一般用sp
<TextView
android:id="@+id/tv_one"
android:layout_width="200dp"
android:layout_height="200dp"
android:text="test01"
android:textColor="#F60606"
android:textSize="30sp"
android:textStyle="bold" />
控件背景颜色,可以理解为填充整个控件的颜色,可以是图片
<TextView
android: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" />
设置控件中内容的对齐方向
有top、bottom、left、right、center_vertical、center_horizontal…
可以按住ctrl 然后鼠标点击 gravity 查看更多支持
<TextView
android: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" />
在实际开发中不会把 直接 写 android:text=“test01”、android:textColor=“#F60606”、android:background=“#DFA4A4”
会在
color.xml和strings.xml中配置好了直接引用
color.xml
我只添加了red,其他都是默认的
<resources>
<color name="purple_200">#FFBB86FCcolor>
<color name="purple_500">#FF6200EEcolor>
<color name="purple_700">#FF3700B3color>
<color name="teal_200">#FF03DAC5color>
<color name="teal_700">#FF018786color>
<color name="black">#FF000000color>
<color name="white">#FFFFFFFFcolor>
<color name="red">#FFFF0000color>
resources>
strings.xml
我只添加了tv_one
<resources>
<string name="app_name">Demo01string>
<string name="tv_one">tv_one_王.blakestring>
resources>
引用
<TextView
android: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" />
https://www.bilibili.com/video/BV13y4y1E7pF?p=4
<TextView
android: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" />
https://www.bilibili.com/video/BV13y4y1E7pF?p=5
就是循环展示一行 string
默认是不会跑起来的,有三种方法可以让他跑起来(我用的模拟器自动就能跑起来。。。)
1、android:clickable:可以点击
设置android:clickable=“true”,点击一下能开始跑
<TextView
android: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);
}
@Override
public boolean isFocused() {
return true;
}
}
<com.example.demo01.MyTextView
android: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
<TextView
android: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