Android beginner difference between padding and margin

Android

Android Problem Overview


I have referred questions on SO. ALso checked an answer:
Padding is the space inside the border, between the border and the actual view's content. Note that padding goes completely around the content: there is padding on the top, bottom, right and left sides (which can be independent).

Margins are the spaces outside the border, between the border and the other elements next to this view. In the image, the margin is the grey area outside the entire object. Note that, like the padding, the margin goes completely around the content: there are margins on the top, bottom, right, and left sides.

Also, more on padding and margins from:

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

But what is the difference fundamentally between padding and margins ? Would the behaviour differ depending on O.S. and devices?
I have a normal, simple layout. No problem with code, have used layout folders - layout and layout-sw600dp plus drawables-4dpi. Can't make layout without margin or padding, which one is more appropriate?

Android Solutions


Solution 1 - Android

Margin

Margins make up the vertical and horizontal areas between elements. If elements have no margins around them, they will bump right up against each other. In other words, he space outside of, or between, elements is what comprises the margin areas.

Margin

Padding

The padding of an element is the horizontal and vertical space that’s set around the content area of the targeted element. So padding is on the inside of a box, not the outside.

enter image description here

Solution 2 - Android

Padding is for inside/within components. Eg. TextView , Button, EditText etc.
Eg. space between the Text and Border

Margin is to be applied for the on-outside of the components.
Eg. space between left edge of the screen and border of your component

Visual representation is great in : https://stackoverflow.com/questions/4619899/difference-between-a-views-padding-and-margin

With Padding, i have seen a difference in 2.2, 2.3 and say 4.3, 4.4
in such cases:

<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>  

Also, check the use of dimens:
http://developer.android.com/guide/topics/resources/more-resources.html

Solution 3 - Android

In Simple words .. if you want to take your widget like TextView, EditText far away from other. You should use margin from top,right,left,bottom.

By increasing padding it will increase the inner spacing not making the widget far apart from others..

enter image description here

Like buttons, for example, the characteristic button background image includes the padding, but not the margin. In other words, adding more padding makes the button look visually bigger, while adding more margin just makes the gap between the button and the next control wider.

Solution 4 - Android

Margin: Between border and its parent layout

Padding: Between content and border

refer to this

enter image description here

Solution 5 - Android

The difference between margin and padding and use cases are clearly explained by +Nick Butcher in Udacity's video. Here's the excerpt:

> ...if you want the touchable area or the background of the object to be enlarged, then use padding, otherwise use margin...

Solution 6 - Android

> what is the difference fundamentally between padding and margins ?

For the differences - Rohan Khandwal has shared a very perfect link.

> Would the behaviour differ depending on O.S. and devices?

Now If we are talking about the behaviour of the view which has been given diffrent margins & padding. Then It will definitely look diffrent in different devices with diffrent resolutions. Thats why we are given diffrent dimen/values/layout folders which have their own meanings.

Solution 7 - Android

The difference between android margin and padding is that even though the text is how much sp you want away from the edge, margin is not spaced or colored in. It is only the text and the color you set with it all "alone". With padding though, the text is away from the edge of the screen just like margin but, in padding the text is away and all the space between the text and the edge of the screen is filled in with the color or any text preference you chose to be. This is the difference between android margin and android padding.

Solution 8 - Android

Padding is the space inside the border, between the border and the actual view's content. Note that padding goes completely around the content: there is padding on the top, bottom, right and left sides (which can be independent).

Margins are the spaces outside the border, between the border and the other elements next to this view. In the image, the margin is the grey area outside the entire object. Note that, like the padding, the margin goes completely around the content: there are margins on the top, bottom, right, and left sides.

Padding Increases the size of the view where as margin doesn't because it is outside the view

Solution 9 - Android

The padding is expressed in pixels for the left, top, right, and bottom parts of the view. Padding can be used to offset the content of the view by a specific amount of pixels.

For instance, a left padding of 2 will push the view's content by 2 pixels to the right of the left edge.

Padding can be set using the setPadding(int, int, int, int) method and queried by calling getPaddingLeft(), getPaddingTop(), getPaddingRight(), and getPaddingBottom().

Margins are the spaces outside the border, between the border and the other elements next to this view. Note that, like the padding, the margin goes completely around the content :there are margins on the top, bottom, right, and left sides. Margin can be set using the setMargins(int left, int top, int right, int bottom) method.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questionuser3341441View Question on Stackoverflow
Solution 1 - AndroidKashif NazarView Answer on Stackoverflow
Solution 2 - AndroidPararthView Answer on Stackoverflow
Solution 3 - AndroidZar E AhmerView Answer on Stackoverflow
Solution 4 - AndroidOrhan ObutView Answer on Stackoverflow
Solution 5 - AndroidEugene BrusovView Answer on Stackoverflow
Solution 6 - AndroidSagar ShahView Answer on Stackoverflow
Solution 7 - AndroidSamarth ShahView Answer on Stackoverflow
Solution 8 - AndroidVivek NayakView Answer on Stackoverflow
Solution 9 - AndroidAkta DadhaniyaView Answer on Stackoverflow