Android补全计划 TextView添加删除线、下划线、更新字体等效果

发布于:2025-07-10 ⋅ 阅读:(15) ⋅ 点赞:(0)

1 可在布局中直接更新

可在布局中直接更新的:加粗、斜体、字体;其中 字体文件需要放在res/font/your_font.ttf下

<TextView
    android:id="@+id/txt4"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="在布局文件中设置加粗"
    android:textColor="#FE7E00"
    android:textSize="16sp"
    android:textStyle="bold" />
 
<TextView
    android:id="@+id/txt5"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="在布局文件中设置斜体字"
    android:textColor="#FE7E00"
    android:textSize="16sp"
    android:textStyle="italic" />
 
<TextView
    android:id="@+id/txt6"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="在布局文件中设置斜体加斜体字"
    android:textColor="#FE7E00"
    android:textSize="16sp"
    android:textStyle="italic|bold" />
   
    <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="在布局文件中设置字体"
    android:fontFamily="@font/new_font" />

2 java动态设置

需动态设置的:删除线、下划线,加粗和字体也可动态设置,且需要放于app/src/main/assets/fonts/xxx.ttf下

    <TextView
        android:id="@+id/txt1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="添加删除线\设置字体"
        android:textColor="#FE7E00"
        android:textSize="16sp" />
 
    <TextView
        android:id="@+id/txt2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="在代码中设置加粗"
        android:textColor="#FE7E00"
        android:textSize="16sp" />
 
    <TextView
        android:id="@+id/txt3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="添加下划线"
        android:textColor="#FE7E00"
        android:textSize="16sp" />

java中

 		txt1 = ((TextView) findViewById(R.id.txt1));
        txt2 = ((TextView) findViewById(R.id.txt2));
        txt3 = ((TextView) findViewById(R.id.txt3));
        //添加删除线
        txt1.getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG);
        //在代码中设置加粗
        txt2.getPaint().setFlags(Paint.FAKE_BOLD_TEXT_FLAG);
        //添加下划线
        txt3.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG);

		//设置字体
		Typeface tf = ResourcesCompat.getFont(context, R.font.new_font);
		txt1.setTypeface(tf);

附:
(1)STRIKE_THRU_TEXT_FLAG即Strike Through Text Flag(划穿文本的标志),即文字中划线。
(2)标志可组合使用,使用“|”分割即可,即txt1.getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG | Paint.ANTI_ALIAS_FLAG | Paint.FAKE_BOLD_TEXT_FLAG);


网站公告

今日签到

点亮在社区的每一天
去签到