Android TextView等控件不为人知的秘密

Posted BandaYung

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android TextView等控件不为人知的秘密相关的知识,希望对你有一定的参考价值。

一、TextView

Button是继承TextView,TextView有的,同样Button也有以下特点:

1、空格占位法

  == 普通的英文半角空格

  ==   ==   (普通的英文半角空格但不换行)

  == 中文全角空格 (一个中文宽度)

  ==   == en空格 (半个中文宽度)

  ==   == em空格 (一个中文宽度)

  == 四分之一em空格 (四分之一中文宽度)

举个空格例子:

  • 在布局中
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/white"
    android:orientation="vertical">

    <TextView
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:text="姓&#8195;名" />

    <TextView
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:text="身份证" />

</LinearLayout>
  • 在代码中
setText("姓`&#8195;`名");
setText("身份证");

2、首行缩进

  • 在布局中,在文字的前面加入”\\u3000\\u3000”

  • 在代码中,使用setText(“\\u3000\\u3000”+xxxxx);

3、设置文字 + 图片

这里举文字左边有图片的例子(其他三个方向也同理):

  • 在布局中
android:drawableLeft="@mipmap/icon_praise"
android:drawablePadding="5dip"
  • 在代码中
TextView tv = ...;
tv.setCompoundDrawablesWithIntrinsicBounds(R.mipmap.icon_praise, 0, 0, 0);
tv.setCompoundDrawablePadding(5);

4、设置字形

android:textStyle:设置字形[bold(粗体) 0, italic(斜体) 1, bolditalic(又粗又斜) 2] 可以设置一个或多个,用“|”隔开

这里举例设置粗体:

  • 在布局中
 android:textStyle="bold"
  • 在代码中
TextView tv = ...;
TextPaint tp = tv.getPaint();
tp.setFakeBoldText(true);

5、使用&符号

提示unescaped & or nonterminated character/entity reference,

情景:在使用databinding布局中用到表达式时出现的问题,同样其他也适用。

原因:IDEA将“&”当成了特殊符号。

解决方法:将“&”改写为 &amp;

二、Button

1、设置padding无效

设置水平padding的话,minWidth=0才有效
设置垂直padding的话,minHeight=0才有效

如下代码:

android:minHeight="0dp"
android:minWidth="0dp"

后续更新。。。

以上是关于Android TextView等控件不为人知的秘密的主要内容,如果未能解决你的问题,请参考以下文章

TextView控件常用属性

android textview啥意思

android开发的textview和imageview有啥区别吗?

Android TextView中文字通过SpannableString来设置超链接 颜色 字体等属性

Android TextView中文字通过SpannableString来设置超链接颜色字体等属性

Android从零单排系列六《Android视图控件——TextView》