Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android:设计布局问题_Android_Layout_Size - Fatal编程技术网

Android:设计布局问题

Android:设计布局问题,android,layout,size,Android,Layout,Size,我已经准备了很多很多教程,我已经读了第三遍,但我仍然不知道如何设置布局以兼容多个屏幕 在android文档中,我发现: 例如,布局为\u width=“100dp”的视图测量100像素 宽中密度屏幕,系统可扩展至150 高密度屏幕上像素宽,因此视图占据 屏幕上的物理空间大致相同 好的,让我们看一个例子: 正如您所看到的,分辨率是相同的(480x800),但是视图直到最后才填充。我知道我应该使用fill\u parent或match\u parent,但这只是出于测试目的 XML布局文件: &l

我已经准备了很多很多教程,我已经读了第三遍,但我仍然不知道如何设置布局以兼容多个屏幕

在android文档中,我发现:

例如,布局为\u width=“100dp”的视图测量100像素 宽中密度屏幕,系统可扩展至150 高密度屏幕上像素宽,因此视图占据 屏幕上的物理空间大致相同

好的,让我们看一个例子:

正如您所看到的,分辨率是相同的(480x800),但是视图直到最后才填充。我知道我应该使用fill\u parent或match\u parent,但这只是出于测试目的

XML布局文件:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:weightSum="100"
        android:orientation="vertical" >

        <RelativeLayout
            android:layout_width="320dp"
            android:layout_height="0dp"
            android:layout_weight="45"
            android:background="@drawable/bg_red" >

        </RelativeLayout>

        <RelativeLayout
            android:layout_weight="10"
            android:layout_width="fill_parent"
            android:layout_height="0dp" >
        </RelativeLayout>

        <RelativeLayout
            android:layout_width="320dp"
            android:layout_height="0dp"
            android:layout_weight="45"
            android:background="@drawable/bg_blue" >

        </RelativeLayout>

    </LinearLayout>

</RelativeLayout>

Dp或dip(
与密度无关的像素
)会考虑设备的密度。密度无关像素的用途是在任何密度的屏幕上以相同的物理尺寸显示视图

倾角的实际像素数取决于设备的密度:

  • 如果您有一个mdpi设备,一个dpi等于一个像素(因子=1)
  • 在hdpi设备上,一个dpi是两个像素,应该是 物理尺寸大约与mdpi上的一个像素一样大。(系数=2)
在实际设备上,这一切变得更加清晰:

您的480*800 hdpi设备的物理尺寸将小于480*800 mdpi设备。因此,当视图填充hdpi设备的屏幕时,具有相同物理大小(dp)的视图将不会填充mdpi设备上的屏幕。

dp或dip(
密度独立像素
)会考虑设备的密度。密度无关像素的用途是在任何密度的屏幕上以相同的物理尺寸显示视图

倾角的实际像素数取决于设备的密度:

  • 如果您有一个mdpi设备,一个dpi等于一个像素(因子=1)
  • 在hdpi设备上,一个dpi是两个像素,应该是 物理尺寸大约与mdpi上的一个像素一样大。(系数=2)
在实际设备上,这一切变得更加清晰:


您的480*800 hdpi设备的物理尺寸将小于480*800 mdpi设备。因此,当视图填充hdpi设备的屏幕时,具有相同物理大小(dp)的视图不会填充mdpi设备的屏幕。

我知道,我使用了一个公式来计算px->dp。如图所示,480dp=480px(mdpi),hdpi上为320dp。我编辑了我的文章,添加了XML布局文件。现在我的问题是:我应该放多少dp才能正常适应屏幕?480dp或320dp?如果要填充屏幕,请始终使用匹配父项(在API级别8之前填充父项)。你不可能用dp值来填充任何设备的屏幕。我知道,我用了一个公式来计算px->dp。如图所示,480dp=480px(mdpi),hdpi上为320dp。我编辑了我的文章,添加了XML布局文件。现在我的问题是:我应该放多少dp才能正常适应屏幕?480dp或320dp?如果要填充屏幕,请始终使用匹配父项(在API级别8之前填充父项)。您无法使用dp值填充任何设备的屏幕。