4

我想知道如何使应用程序在不同设备上看起来相同。我已经多次阅读支持多个屏幕,但我仍然无法理解如何生活。

这是一个示例布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
        >
    <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="Hello World, MyActivity"
            android:textSize="30sp"
            />
</LinearLayout>

有 Galaxy S II (480x800) 和 Sensation XE (540x960)。它们都是hdpi,物理屏幕大小几乎相同。我希望在两种设备上看到相同的外观,但实际上 540x960 上的文本比 480x800 上的要小:( 在此处输入图像描述 左边是 480x800,右边是 540x960)

我试图将文本大小指定为维度资源并创建单独的文件夹values-w540dp,但没有效果。

你们如何使您的应用程序在不同hdpi设备上看起来相同?

4

3 回答 3

3
android:textAppearance="?android:attr/textAppearanceLarge"

android:textAppearance="?android:attr/textAppearanceMedium"

android:textAppearance="?android:attr/textAppearanceSmall"

这些属性可能会解决您的问题。否则您必须使用屏幕高度和宽度以某些比率(或您生成的因子,例如:textSize=factor*height)动态设置布局。

于 2012-11-08T13:31:47.497 回答
0

2 个站点可能会有所帮助,因为两者都有一些与您的问题相关的问题,但是,如何纠正您所看到的问题也不是一个确切的 1-2-3:

于 2012-11-08T13:50:10.720 回答
0

看看metrics,如果你在 dp (与密度无关的像素)中指定你的文本大小,它应该可以工作。文本的默认大小应为 14dp 左右。(TextAppearance.small)

于 2012-11-08T13:34:42.790 回答