根据高度设置TextView文本大小

时间:2015-10-20 11:51:56

标签: android android-layout android-activity

我使用dailpadLinearLayout创建了一个布局,并使用layout_weight对该数字进行了划分。

 <LinearLayout
                    android:id="@+id/layout_digitOne"
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:orientation="vertical"
                    android:weightSum=".9">


                    <TextView
                        android:id="@+id/digit_one"
                        android:layout_width="match_parent"
                        android:layout_height="0dp"
                        android:layout_weight=".6"
                        android:layout_centerInParent="true"
                        android:gravity="center"
                        android:textColor="#e03a2f2d"
                        android:textSize="45sp"
                        android:text="1"/>


                    <TextView
                        android:layout_width="match_parent"
                        android:layout_height="0dp"
                        android:layout_weight=".2"
                        android:layout_gravity="top"
                        android:gravity="top|center_horizontal"
                        android:textSize="15dp"
                        android:text=""/>
                </LinearLayout>

这里对于TextView中的数字one,我将文本的大小设置为45sp。但是当由于布局中指定的文本大小而获得小屏幕时,布局正在破坏。

是否可以根据TextView layout_height can set the textSize

任何人都可以给我一个想法 在此先感谢:)

3 个答案:

答案 0 :(得分:2)

您需要制作不同的布局或使用该库,

https://github.com/grantland/android-autofittextview

答案 1 :(得分:0)

你应该使用样式,然后你可以有单独的文件夹“值”(默认)“values-hdpi”(高密度)“values-mdpi”(中等密度)等等,并将你的样式文件与正确的textSize值放在一起在每个文件夹中根据需要。

例如,

res/values/dimens.xml

res/values-small/dimens.xml

res/values-normal/dimens.xml

res/values-large/dimens.xml

res/values-xlarge/dimens.xml

现在指定您希望保留在不同XML文件中的值。 实施例

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <dimen name="text_size">18sp</dimen>
</resources>

通过执行此操作,它将根据您的屏幕大小获取正确的XML,并设置该XML中提到的TextSize。

答案 2 :(得分:0)

使用dimens.xml根据设备大小控制TextView的大小。您可以通过在dimens.xml的不同版本中设置不同大小的Text来执行此操作,然后在布局xml中引用大小,而不是直接对其进行硬编码。

<TextView
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:layout_weight=".2"
                    android:layout_gravity="top"
                    android:gravity="top|center_horizontal"
                    android:textSize="@dimen/<nameOfTextSizeInDimens>"
                    android:text=""/>