Android - 所有屏幕尺寸的按钮文字大小

时间:2014-01-19 13:23:38

标签: android android-button

我正在开发一个Android应用程序,我在屏幕顶部有3个按钮,我使用layout_weight属性定义它们。这些按钮适用于所有屏幕尺寸,包括平板电脑,但文字却没有。

这就是 nexus 5

的样子

这就是 nexus 10

的样子

看到差异?
在nexus 5上,它非常清晰,但在nexus 10上几乎看不到任何东西!

这是我的 XML

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_gravity="center_vertical"
    android:layout_weight="1"
    android:background="#000000"
    android:orientation="horizontal"
    android:weightSum="3" >

    <Button
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:text="Button 1"
        android:layout_weight="1"
        android:id="@+id/button" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:text="Button 2"
        android:layout_weight="1"
        android:id="@+id/button2" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:text="Button 3"
        android:layout_weight="1"
        android:id="@+id/button3" />
</LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_gravity="center_vertical"
    android:background="#000000"
    android:layout_weight="1"
    android:orientation="horizontal"
    android:weightSum="3" >

</LinearLayout>


<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_gravity="center_vertical"
    android:layout_weight="1"
    android:background="#000000"
    android:orientation="horizontal"
    android:weightSum="3" >

</LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_gravity="center_vertical"
    android:layout_weight="1"
    android:background="#000000"
    android:orientation="horizontal"
    android:weightSum="3" >

</LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_gravity="center_vertical"
    android:layout_weight="1"
    android:background="#000000"
    android:orientation="horizontal"
    android:weightSum="3" >

</LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_gravity="center_vertical"
    android:layout_weight="1"
    android:background="#000000"
    android:orientation="horizontal"
    android:weightSum="3" >

</LinearLayout>

那么如何在不同的屏幕尺寸下自动调整按钮文字大小呢?

请帮我解释一下代码,因为我几乎是初学者!

提前致谢!

2 个答案:

答案 0 :(得分:3)

您目前正在尝试扩展整个应用程序,而不是构建适当的平板电脑用户界面。您将按钮的宽度设置为屏幕的1/3,这是按预期工作的。您没有更改按钮的textSize,因此Android会选择默认的textSizes。默认textSizes是特定大小,与视图的维度无关。你不能(并且不想要)扩展完整的UI,使其在4&#34;电话和10&#34;片剂。

您无法在一个布局中为手机和平板电脑构建(正确)用户界面,因为您应该在平板电脑上显示的信息多于在手机上显示的信息。虽然您可以重复使用大部分布局。 您可能希望阅读Android开发者网站上的Supporting Different Screen Sizes培训。

答案 1 :(得分:2)

您可以在sp中设置按钮textSize(即:24sp)。

请记住,此值是指mdpi屏幕,它将根据屏幕分辨率放大或缩小。

因此,在ldpi屏幕上,它将缩小到18sp,而在xhdpi屏幕上,它将缩放到48sp。

除此之外,您可以在values文件夹中的dimens.xml文件中定义维度值(但您必须创建多个值文件夹,每个文件夹对应一个您支持的分辨率)。