Android之TextView

本文深入探讨了Android中TextView的各种特性和使用技巧,包括文本溢出处理、文本图标结合、跑马灯效果、中划线与下划线实现等,通过具体代码示例展示了如何在不同场景下应用这些特性。

activity_main.xml

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

    <Button
        android:id="@+id/btn_textview"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="TextView"

    />
</LinearLayout>

MainActivity

package com.example.test0508;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {
    
    //写一个button
    private Button mBtnTextView;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mBtnTextView = findViewById(R.id.btn_textview);
        mBtnTextView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //点击事件,跳转到TextView演示界面
                Intent intent = new Intent(MainActivity.this,TestViewActivity.class);
                startActivity(intent);
            }
        });
    }
}

新建一个TestViewActivity
在AndroidManifest.xml声明一下


activity_test_view.xml(TestViewActivity对应的xml)

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

    <TextView
        android:id="@+id/tv_1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="我是lee,你是谁啊啊啊啊啊啊啊"
        android:textColor="#000000"
        android:textSize="24sp"
        />

    <!--文字太多显示....-->
    <TextView
        android:id="@+id/tv_2"
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:maxLines="1"
        android:ellipsize="end"
        android:text="我是lee,你是谁"
        android:textColor="#000000"
        android:textSize="24sp"
        android:layout_marginTop="15dp"
        />


    <!--    文字+icon-->
    <TextView
        android:id="@+id/tv_3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="筛选"
        android:drawableRight="@drawable/icon"
        android:drawablePadding="5dp"
        android:textColor="#000000"
        android:textSize="24sp"
        android:layout_marginTop="15dp"
        />


    <!--中划线,在activity里面做-->
    <TextView
        android:id="@+id/tv_4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="我是lee,你是谁啊啊啊啊啊啊啊"
        android:textColor="#000000"
        android:textSize="24sp"
        android:layout_marginTop="10dp"
        />

    <!--下划线-->
    <TextView
        android:id="@+id/tv_5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="我是lee,你是谁啊啊啊啊啊啊啊"
        android:textColor="#000000"
        android:textSize="24sp"
        android:layout_marginTop="15dp"
        />


<!--    涉及到html的下划线-->
    <TextView
        android:id="@+id/tv_6"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text=""
        android:textColor="#000000"
        android:textSize="24sp"
        android:layout_marginTop="15dp"

        />
 
 
<!--跑马灯-->
    <TextView
        android:id="@+id/tv_7"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="我是你爸爸我是你爸爸我是你爸爸我是你爸爸我是你爸爸我是你爸爸"
        android:textColor="#000000"
        android:textSize="24sp"
        android:layout_marginTop="15dp"
        android:singleLine="true"
        android:ellipsize="marquee"
        android:marqueeRepeatLimit="marquee_forever"
        android:focusable="true"
        android:focusableInTouchMode="true"
        />


</LinearLayout>

贼好玩,赶紧run一下吧
👇
< !–中划线,下划线,在activity里面做 -->
TestViewActivity

package com.example.test0508;

import androidx.appcompat.app.AppCompatActivity;

import android.graphics.Paint;
import android.os.Bundle;
import android.text.Html;
import android.widget.TextView;

public class TestViewActivity extends AppCompatActivity {

    private TextView mTv4;//中划线

    private TextView mTv5;//下划线

    private TextView mTv6;//html形式的下划线
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_test_view);
        //找到空间
        mTv4 = findViewById(R.id.tv_4);
        //中划线效果
        mTv4.getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG);
        //去掉锯齿的感觉
        mTv4.getPaint().setAntiAlias(true);

        //找到空间
        mTv5 = findViewById(R.id.tv_5);
        //下划线效果
        mTv5.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG);

        //html下划线效果
        mTv6 = findViewById(R.id.tv_6);
        mTv6.setText(Html.fromHtml("<u>你到底是谁啊啊啊啊啊</u>"));
        
    }
}

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值