填充和边距之间的Android初学者差异

时间:2014-02-22 19:04:40

标签: android

我在SO上提到过问题。还检查了答案:
填充是边框内部,边框和实际视图内容之间的空间。请注意,填充完全围绕内容:顶部,底部,右侧和左侧有填充(可以是独立的)。

边距是边框之外,边框与此视图旁边的其他元素之间的空格。在图像中,边距是整个对象外部的灰色区域。请注意,与填充一样,边距完全围绕内容:顶部,底部,右侧和左侧都有边距。

此外,更多关于填充和边距来自:

http://developer.android.com/reference/android/view/View.html
http://developer.android.com/reference/android/view/ViewGroup.MarginLayoutParams.html

但填充和边距之间的根本区别是什么?行为是否会因O.S.而异。和设备?
我有一个正常,简单的布局。没有问题的代码,使用布局文件夹 - 布局和布局-sw600dp加上drawables-4dpi。没有边距或填充不能进行布局,哪一个更合适?

10 个答案:

答案 0 :(得分:57)

保证金

边距构成元素之间的垂直和水平区域。如果元素周围没有边距,它们将相互碰撞。换句话说,他在元素之外或之间的空间是构成边缘区域的空间。

Margin

<强>填充

元素的填充是围绕目标元素的内容区域设置的水平和垂直空间。所以填充在盒子的内部,而不是在外面。

enter image description here

答案 1 :(得分:39)

Padding适用于组件内部/内部。例如。 TextViewButtonEditText等 例如。文本和边框之间的空格

Margin将应用于组件的外部 例如。屏幕左边缘与组件边框之间的空间

视觉表现非常出色:Difference between a View's Padding and Margin

Padding,我看到2.2,2.3和4.3,4.4的差异 在这种情况下:

<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"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:text="ASDFGHJKL" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingLeft="15dp"
        android:text="@string/hello_world" />

</RelativeLayout>  

另外,检查尺寸的使用:
http://developer.android.com/guide/topics/resources/more-resources.html
http://developer.android.com/samples/BasicSyncAdapter/res/values/dimen.html

答案 2 :(得分:23)

简单来说..如果你想把你的小部件像TextView一样,EditText远离其他。您应该使用顶部,右侧,左侧,底部的边距。

通过增加填充,它将增加内部间距,而不会使小部件远离其他部分。

enter image description here

与按钮类似,例如,特征按钮背景图像包括填充,但不包括边距。换句话说,添加更多填充使按钮看起来更大,而添加更多边距只会使按钮和下一个控件之间的间隙变宽。

答案 3 :(得分:19)

保证金:在边框及其父版面之间

填充:在内容和边框之间

refer to this

enter image description here

答案 4 :(得分:5)

填充位于视图内。

保证金在视图之外。

这种差异可能与背景或尺寸属性有关。

image

答案 5 :(得分:2)

在Udacity的+Nick Butcher中,video清楚地解释了边距与填充和用例之间的差异。这是摘录:

  

...如果您想要放大可触摸区域或对象背景,请使用填充,否则使用边距...

答案 6 :(得分:1)

  

填充和边距之间的根本区别是什么?

对于差异 - Rohan Khandwal分享了一个非常完美的链接。

  

行为是否会因O.S.而异。和设备?

现在,如果我们正在谈论视图的行为,它已被赋予不同的边距&amp;填充。然后,在具有不同分辨率的不同设备中,它肯定会看起来不同。 这就是为什么我们给出了具有各自含义的不同尺寸/值/布局文件夹。

答案 7 :(得分:0)

android边距和填充之间的区别在于,即使文本是你想要远离边缘多少sp,边距也不会间隔或着色。它只是文本和你用它设置的颜色&# 34;单独&#34 ;.但是,使用填充,文本远离屏幕边缘,就像边距一样,但是在填充中文本是远离的,文本和屏幕边缘之间的所有空间都填充了您选择的颜色或任何文本首选项成为。这是android margin和android padding之间的区别。

答案 8 :(得分:0)

填充是边框内部,边框与实际视图内容之间的空间。请注意,填充完全围绕内容:顶部,底部,右侧和左侧有填充(可以是独立的)。

边距是边框之外,边框与此视图旁边的其他元素之间的空格。在图像中,边距是整个对象外部的灰色区域。请注意,与填充一样,边距完全围绕内容:顶部,底部,右侧和左侧都有边距。

填充增加视图的大小,因为它在视图之外,因为它不在视图之外

答案 9 :(得分:0)

填充以视图的左,上,右和底部分的像素表示。填充可用于将视图的内容偏移特定量的像素。

例如,左边的填充为2会将视图内容推到左边缘右侧2个像素。

可以使用setPadding(int, int, int, int)方法设置填充,并通过调用getPaddingLeft()getPaddingTop()getPaddingRight()getPaddingBottom()进行查询。

边距是边框之外,边框与此视图旁边的其他元素之间的空格。 请注意,与填充一样,边距完全围绕内容:顶部,底部,右侧和左侧都有边距。 可以使用setMargins(int left,int top,int right,int bottom)方法设置边距。