我想知道如何让应用程序在不同的设备上看起来一样。我多次阅读Supporting Multiple Screens但我仍然无法理解如何生活。
以下是示例布局:
<?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
设备上看起来一样?
答案 0 :(得分:3)
android:textAppearance="?android:attr/textAppearanceLarge"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textAppearance="?android:attr/textAppearanceSmall"
这些属性可以解决您的问题。否则,您必须使用屏幕高度和宽度动态设置一些比例(或生成的因子,如:textSize = factor * height)。
答案 1 :(得分:0)
如果您在dp(与密度无关的像素)中指定文本大小,请查看metrics,它应该有效。文本的默认大小应为14dp左右。 (TextAppearance.small)
答案 2 :(得分:0)
2可能有用的网站,因为这两个网站都有一些与您的问题相关的金块,然而,两者都不是1-2-3如何纠正您所看到的问题: