Android TextView文本框的属性及跑马灯效果

本文详细介绍了Android中的TextView控件,包括其基本属性如布局宽高、文本内容、颜色、字体样式、大小及背景设置。此外,还讲解了如何实现跑马灯效果,涉及singleLine、ellipsize、marqueeRepeatLimit等属性,并提供了三种设置焦点的方法。同时,提到了颜色和字符串资源应放在colors.xml和strings.xml文件中。
摘要由CSDN通过智能技术生成

TextView 控件  → 用来展示文本信息

基本属性如下

1 layout_width    → 组件的宽度 (单位是dp)
    match_parent | wrap_content | 200dp
2 layout_height   → 组件的高度
3 id              → TextView 的组件id(唯一标识)
4 text            → 组件的文本 
5 textColor          → #00000000  (总共8位,前2位是 颜色的透明度,剩下6位分别表示红绿蓝)
6 textStyle       → 字体样式
    normal(默认) | bold | italic 斜体
7 textSize        → 字体大小(单位一般用 sp)
8 background      → 背景的颜色 
    可以用颜色,也可以用图片
9 gravity         → 设置控件中内容对齐的方向
    center_horizontal (水平居中) | center_vertical (垂直居中)
10 shadowColor    → 阴影颜色
11 shadowRadius   → 阴影模糊半径  (一般设成 3.0)
12 shadowDx          → 阴影水平偏移
13 shadowDy       → 阴影垂直偏移
14 跑马灯效果:

     跑马灯属性
    singleLine    → 单行显示(跑马灯选这个:true)
    ellipsize     →  在哪里省略文本 (跑马灯选这个:marquee)
    marqueeRepeatLimit →  字幕动画重复的次数 (跑马灯选这个:marquee_forever)
    focusable      → 是否可以获取焦点 (true)
    focusableInTouchMode  → 控制视图在触摸模式下是否可以聚焦 (true)
    

    跑马灯设置焦点的方法
    方法1
    clickable       → 可点击(true)
    
    方法2 java里:
    MyTextView 继承  TextView: 重写 isFocused()方法,return ture;
    xml的标签改成 MyTextView 的标签
    
    方法3 
    TextView 里面加上 requestFocus这个标签
    

    

备注:
1 不记得属性的值有哪些,ctrl + 鼠标点击属性名,可以 看到
2 宽高的尺寸 dp  和文字大小的 sp 都是为了去适配不同的手机
3 颜色和文字 应该写在  app\src\main\res\values下面的 colors.xml 和 strings.xml 
 

代码位置如下:

 MainActivity.java

setContentView()方法 关联到activity_main.xml  文件
package com.example.demo;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //通过id获取 TextView
        TextView p1 = findViewById(R.id.phone_one);
        //设置TextView 的text,比xml里的设置优先级高
        //p1.setText("CS");


    }
}

activity_main.xml

设置TextView

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <TextView
        android:id="@+id/phone_one"
        android:text="@string/p_name"
        android:textColor="@color/blue"
        android:textStyle="italic"
        android:textSize="30sp"
        android:background="#ffffffff"
        android:shadowColor="@color/red"
        android:shadowRadius="3.0"
        android:shadowDx="10.0"
        android:shadowDy="10.0"
        android:gravity="center_horizontal"
        android:singleLine="true"
        android:ellipsize="marquee"
        android:marqueeRepeatLimit="marquee_forever"
        android:focusable="true"
        android:focusableInTouchMode="true"
        android:clickable="true"
        android:layout_width="match_parent"
        android:layout_height="200dp">

        <requestFocus/>
     </TextView>

</LinearLayout>

colors.xml

activity_main.xml 里引用了colors.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="colorPrimary">#008577</color>
    <color name="colorPrimaryDark">#00574B</color>
    <color name="colorAccent">#00574B</color>
    <color name="blue">#ff00ffff</color>
    <color name="red">#ffff0000</color>
</resources>

strings.xml

activity_main.xml 里引用了strings.xml

<resources>
    <string name="app_name">Demo</string>
    <string name="p_name">今天晚上吃什么?香蕉西瓜大飞船橘子荔枝大火烧</string>
</resources>

MyTextView.java

跑马灯设置焦点的设置方法2

package com.example.demo;

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;
    }
}

看一下效果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值