Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/231.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 布局重量和使用dp之间有什么区别?_Android_Android Layout - Fatal编程技术网

Android 布局重量和使用dp之间有什么区别?

Android 布局重量和使用dp之间有什么区别?,android,android-layout,Android,Android Layout,我想创建一个可伸缩视图 我是否更喜欢使用线性布局属性:布局\权重 或者使用布局宽度:X dp?这也是相对的,不象像素那样 区别是什么?我的理解是,dp只是一个你想要一个物体的一般大小,而权重则定义了你想要某个物体相对于共享同一空间的其他物体的空间大小。当你想要某个视图占据可用空间的三分之一时,创建布局就更容易了空间您将如何使用布局宽度来实现这一点?但是,可以使用“权重”属性轻松实现这一点 更重要的是,weight属性使您的布局在所有屏幕尺寸上看起来都一样,即使是平板电脑。当您使用weight属性

我想创建一个可伸缩视图

我是否更喜欢使用线性布局属性:布局\权重

或者使用布局宽度:X dp?这也是相对的,不象像素那样


区别是什么?

我的理解是,dp只是一个你想要一个物体的一般大小,而权重则定义了你想要某个物体相对于共享同一空间的其他物体的空间大小。

当你想要某个视图占据可用空间的三分之一时,创建布局就更容易了空间您将如何使用布局宽度来实现这一点?但是,可以使用“权重”属性轻松实现这一点


更重要的是,weight属性使您的布局在所有屏幕尺寸上看起来都一样,即使是平板电脑。当您使用weight属性时,情况并非如此。通常,如果您这样做,您将为平板电脑开发一个单独的布局。我不是说您应该这样做,我只是想指出区别。

这在很大程度上取决于具体的使用情况

布局权重取决于同一视图组中其他视图的数量和大小

dp密度独立像素取决于设备的密度

通常,dp用于在具有不同屏幕密度的设备上以相同的物理尺寸显示视图,而权重只是确保视图填充其父视图组的一定百分比。

布局宽度和布局高度指定了小部件的这两个维度。您可以使用dp值以独立于设备的方式给出大小'

布局权重表示如何在线性布局中分配任何额外空间。这意味着如果方向设置为水平,LinearLayout将修改它包含的小部件的宽度。另一方面,如果方向设置为垂直,LinearLayout将修改子窗口小部件的高度


总而言之,布局宽度和布局重量有不同的用途,所以问我应该选择哪个是不合适的。在垂直线性布局中,您可以轻松地同时使用这两种颜色。

DP实际上不是相对的,它只是一个与密度无关的像素,因为平板电脑/手机屏幕具有不同的像素密度

您可以使用布局权重将控件缩放到屏幕的1/3,无论屏幕有多小/多大

假设你有:

<LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="horizontal">

    <View
            android:layout_width="20dp"
            android:layout_height="wrap_content"/>

    <View
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="2"/>

    <View
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"/>
</LinearLayout>
在所有不同的设备上,第一个项目的宽度始终相同,第二个项目将填充剩余空间的2/3,第三个项目将填充剩余空间的1/3


这完全取决于您希望如何使布局具有可伸缩性ui的哪些部分应该增长/收缩,哪些部分应该保持不变。

首先,android:layout\u weight属性和dp之间没有关系

dp密度无关像素基本上是一个度量单位

基于屏幕物理密度的抽象单位。 这些单位是相对于每英寸160 dpi点的屏幕而言的,其中1dp大致等于1px

要计算像素和密度点,可以采用以下公式

px=dp*metrics.densityDpi/160f

您可以看到Android支持的所有维度

android:layout\u weight定义父布局中每个视图的权重

例如,您有一个LinearLayout,其中包含TextView和ListView,它们的权重分别为.25和.75。这意味着您的TextView可以使用屏幕上25%的可用空间,而ListView可以使用其他75%的可用空间

最后,确保总权重之和等于1100%

可能重复的