安卓開發學習筆記02_TextView


文本框控件, 以下爲常用的幾個場景

特別聲明

該筆記是筆者通過學習 天哥在奔跑安卓教學視頻 時所編寫的

文字大小,顏色

<TextView
        android:id="@+id/tv_1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="你好啊啊啊"
        android:textColor="#000"
        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="你好啊啊啊"
        android:textColor="#000"
        android:textSize="24sp"
        android:layout_marginTop="10dp"/>

文字+icon

首先在 drawable 文件夾下,放入一個圖標,通過 android:drawableRight 屬性來將圖標放到文字右邊

<TextView
        android:id="@+id/tv_3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="用戶"
        android:textColor="#000"
        android:drawableRight="@drawable/about"
        android:drawablePadding="5dp"
        android:textSize="24sp"
        android:layout_marginTop="10dp"/>

中劃線,下劃線

該功能需要使用編寫java代碼來實現
在當前頁面的 avtivity.xml 中編寫

<TextView
    android:id="@+id/tv_4"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="你好啊啊啊"
    android:textColor="#000"
    android:layout_marginTop="10dp"
    android:textSize="24sp"/>

<TextView
    android:id="@+id/tv_5"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="你好啊啊啊"
    android:textColor="#000"
    android:layout_marginTop="10dp"
    android:textSize="24sp"/>

<TextView
    android:id="@+id/tv_6"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text=""
    android:textColor="#000"
    android:layout_marginTop="10dp"
    android:textSize="24sp"/>

在對應的java類中編寫
主要工作就是通過 id 獲取組件實例,再給它添加中劃線跟下劃線

package com.example.myapplication;

import androidx.appcompat.app.AppCompatActivity;

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

public class TextViewActivity extends AppCompatActivity {

    private TextView mTv4;
    private TextView mTv5;
    private TextView mtv6;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_text_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); //下劃線

        mtv6 = findViewById(R.id.tv_6);
        mtv6.setText(Html.fromHtml("<u>html版本</u>")); // 使用html來添加下劃線
    }
}

跑馬燈

主要屬性:

  1. android:singleLine=“true” 單行顯示
  2. android:ellipsize=“marquee” 切割,給個省略號
  3. android:marqueeRepeatLimit=“marquee_forever” 循環次數
  4. android:focusable=“true” 表示 移動光標時 是否能聚焦到組件上,比如按鈕,就是移動光標是按鈕會變成選中狀態,如果focusable爲false,那麼就跳過此 組件,下一個組件變成選中狀態
  5. android:focusableInTouchMode=“true” 可以通過觸摸獲取焦點
<TextView
        android:id="@+id/tv_7"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="你好啊啊啊你好啊啊啊你好啊啊啊你好啊啊啊你好啊啊啊"
        android:textColor="#000"
        android:layout_marginTop="10dp"
        android:textSize="24sp"
        android:singleLine="true"
        android:ellipsize="marquee"
        android:marqueeRepeatLimit="marquee_forever"
        android:focusable="true"
        android:focusableInTouchMode="true"/>

在java類中,獲取該組件實例,設置 setSelected 爲true

private TextView mtv7;

@Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_text_view);
       mtv7 = findViewById(R.id.tv_7);
       mtv7.setSelected(true);
   }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章