Android补全计划 TextView添加删除线、下划线、更新字体等效果
1 可在布局中直接更新
可在布局中直接更新的:加粗、斜体、字体;其中 字体文件需要放在res/font/your_font.ttf下
<TextViewandroid:id="@+id/txt4"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="在布局文件中设置加粗"android:textColor="#FE7E00"android:textSize="16sp"android:textStyle="bold" /><TextViewandroid:id="@+id/txt5"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="在布局文件中设置斜体字"android:textColor="#FE7E00"android:textSize="16sp"android:textStyle="italic" /><TextViewandroid: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" /><TextViewandroid: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下
<TextViewandroid:id="@+id/txt1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="添加删除线\设置字体"android:textColor="#FE7E00"android:textSize="16sp" /><TextViewandroid:id="@+id/txt2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="在代码中设置加粗"android:textColor="#FE7E00"android:textSize="16sp" /><TextViewandroid: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);