我正在开发一个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>
那么如何在不同的屏幕尺寸下自动调整按钮文字大小呢?
请帮我解释一下代码,因为我几乎是初学者!
提前致谢!
答案 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文件中定义维度值(但您必须创建多个值文件夹,每个文件夹对应一个您支持的分辨率)。