我在240 hdpi WVGA800上开发了我的应用程序。我的一些按钮的文本化太小,所以我不得不将它们改为50sp。它在我开发的东西上看起来不错,但是当测试120 ldpi QVGA和160 mdpi HVGA时,文字略有切断。此外,在3.0上测试时,文本太小了。你怎么处理这个?
编辑:它实际上只是1布局中的一个问题。布局具有嵌套的线性布局,权重= 1,因此每行大小相等并填充屏幕。 LinearLayout的layout_weight使其伸展以垂直适合屏幕。并且对于每个按钮,它们会拉伸以水平填充屏幕。
<LinearLayout>
<ViewFlipper>
<LinearLayout>
<LinearLayout android:layout_weight="1">
<Button android:layout_weight="1"></Button>
<Button android:layout_weight="1"></Button>
<Button android:layout_weight="1"></Button>
</LinearLayout>
<LinearLayout android:layout_weight="1">
<Button android:layout_weight="1"></Button>
<Button android:layout_weight="1"></Button>
<Button android:layout_weight="1"></Button>
</LinearLayout>
<LinearLayout android:layout_weight="1">
<Button android:layout_weight="1"></Button>
<Button android:layout_weight="1"></Button>
<Button android:layout_weight="1"></Button>
</LinearLayout>
<LinearLayout android:layout_weight="1">
<Button android:layout_weight="1"></Button>
<Button android:layout_weight="1"></Button>
<Button android:layout_weight="1"></Button>
</LinearLayout>
</LinearLayout>
<LinearLayout>
</LinearLayout>
</ViewFlipper>
</LinearLayout>
答案 0 :(得分:1)
您需要使用“dp”设置文字大小 - 请参阅此处:http://developer.android.com/guide/practices/screens_support.html
与密度无关的像素(dp) 应用程序可用于定义UI,以与密度无关的方式表达布局尺寸或位置的虚拟像素单元。
与密度无关的像素相当于160 dpi屏幕上的一个物理像素,即平台假定的基线密度(如本文档后面所述)。在运行时,平台根据所使用的屏幕的实际密度透明地处理所需的dp单元的任何缩放。 dp单位到屏幕像素的转换很简单:像素= dps *(密度/ 160)。例如,在240 dpi屏幕上,1 dp将等于1.5个物理像素。强烈建议使用dp单位来定义应用程序的UI,以确保在不同屏幕上正确显示UI。
答案 1 :(得分:0)
您可以使用value.xml中的dimens条目为单独的屏幕分别提供单独的字体大小。有不同的文件夹用于不同的屏幕尺寸(值 - 大,值 - xlarge等)