不同分辨率的Android屏幕

不同分辨率的Android屏幕,android,resolution,screens,Android,Resolution,Screens,我想开发一个应用程序,将支持不同的屏幕大小 我已经读了很多遍了,但我不明白这一点。我创建了一个带有主要活动的全新应用程序,然后在屏幕上放置了一个100dp x 100dp尺寸的黑色正方形,如下所示: res/layout/activity_main.xml: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.co

我想开发一个应用程序,将支持不同的屏幕大小

我已经读了很多遍了,但我不明白这一点。我创建了一个带有主要活动的全新应用程序,然后在屏幕上放置了一个100dp x 100dp尺寸的黑色正方形,如下所示:

res/layout/activity_main.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <FrameLayout
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:background="#000000"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
         />


</RelativeLayout>

当我在模拟器上运行此应用程序时,我会看到以下屏幕:

当我在我的设备上运行应用程序时(Galaxy tab 2),我会看到如下屏幕:

正如您所看到的,在设备上运行的square比在模拟器上运行的square小


我在XML宽度和高度中使用DP。在所有分辨率中,正方形的比例应该是相同的吗?如果没有,我该怎么做才能使这个正方形在所有分辨率下都具有相同的大小?

是的,这可能会令人困惑。
然而,不同的设备具有不同数量的“DP”。这样做的目的是让更大的屏幕可以容纳更多的内容。如果您使用的是图像,您可以为不同的屏幕密度提供不同的大小


更多信息,请参阅本页:

不同的设备具有不同的DP,所以如果u手动地将DP类似于UR情况下的100DP,它将考虑由设备分配的100DP事实上,仅在我的XML中使用DP,将不会在不同的DPS设备中绘制相同的大小比例。这是正确的。你很难在不同的设备上获得相同的比例,所以最好使用我文章中提到的指南。我不明白这里有人在说什么。如果你使用DPs,那么当你用尺子测量这个东西时,它应该是完全相同的大小,而不考虑设备。这不是重点吗?说“不同的设备有不同的DPs”是一种令人困惑的说法。不同的设备有不同的像素数和密度,但它们有相同的DPs,因为这就是它的意思:它独立于设备。例如,在mdpi设备上1dp是1px,而在HDPI设备上1dp是1.5像素。@luxurymode我认为您混淆了密度和大小。并非所有像素都相同。像素越小,密度越高。它与屏幕的物理尺寸无关。你要寻找的是一种方法,使你的图像大小与其父图像成比例。检查布局和重量linearlayout@JasonHessley六羟甲基三聚氰胺六甲醚。。。我认为DPs的全部要点就是:不同的屏幕每个区域有不同数量的像素,密度越高,像素越多。但是android根据广义密度对事物进行分类,虽然每个DPI类别中都有一个范围,但当你使用DP单位时,系统会提供你需要的像素数,以实现该单位的DPs。所以,最后,如果你有,比如说,一些边距定义为6dp,那么边距,当用尺子测量时,在Tmobile g1和galaxy nexus上看起来应该是一样的。