分辨率之间字体大小的差异

时间:2011-04-18 16:34:46

标签: android

我在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>

2 个答案:

答案 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等)