Java android在Edittext中自动调整文本大小

时间:2019-03-01 12:53:40

标签: android

这是我的editText:

      <EditText
                android:id="@+id/max_deep_bin"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:digits="0123456789"
                android:foregroundGravity="center"
                android:singleLine="true"
                android:gravity="center"
                android:inputType="numberDecimal"
                android:text="@string/zero"
                android:textSize="60sp"
                android:textStyle="bold" />

此edittext必须在一行中,因此我放置了一个参数:android:singleLine="true",但是当文本太长时,我想更改textSize怎么做?

2 个答案:

答案 0 :(得分:0)

使用editText.setTextSize(...)

参数将为浮点值size,并且editText的文本大小将设置为size sp

如果要使用sp以外的其他度量单位,请在unit参数前使用预定义的整数值size。您要求的那些预定义值是什么?。

  • COMPLEX_UNIT_DIP:与设备无关的像素(DP)
  • COMPLEX_UNIT_IN:英寸
  • COMPLEX_UNIT_MM:毫米
  • COMPLEX_UNIT_PT:点数
  • COMPLEX_UNIT_PX:原始像素
  • COMPLEX_UNIT_SP:可缩放像素

例如,如果您需要文本大小为20px,请使用

editText.setTextSize(COMPLEX_UNIT_PX, 20.0)

希望这会有所帮助..!

答案 1 :(得分:0)

Android引入了自动增加文字大小选项

 <?xml version="1.0" encoding="utf-8"?>
  <TextView
      android:layout_width="match_parent"
      android:layout_height="200dp"
      android:autoSizeTextType="uniform"
      android:autoSizePresetSizes="@array/autosize_text_sizes" />


    <resources>
      <array name="autosize_text_sizes">
        <item>10sp</item>
        <item>12sp</item>
        <item>20sp</item>
        <item>40sp</item>
        <item>100sp</item>
      </array>
    </resources>

    I Hope this will work!