`
zsg88
  • 浏览: 25024 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Android 的Margin和Padding属性

阅读更多

Android的Margin和Padding跟Html的是一样的。如下图所示:黄色部分为Padding,灰色部分为Margin。

image

通俗的理解 Padding 为内边框,Margin 为外边框

对应的属性为

android:layout_marginBottom="25dip"
android:layout_marginLeft="10dip"
android:layout_marginTop="10dip"
android:layout_marginRight="10dip"
android:paddingLeft="1dip"
android:paddingTop="1dip"
android:paddingRight="1dip"
android:paddingBottom="1dip"

如果左右上下都是相同的设置则可以直接设置

android:layout_margin="10dip"
android:padding="5dip"

 

Android支持的长度单位。

  • px(像素):屏幕上的点。
    pixels(像素). 不同设备显示效果相同,一般我们HVGA代表320x480像素,这个用的比较多。
  • in(英寸):长度单位。
  • mm(毫米):长度单位。
  • pt(磅):1/72英寸。
    point,是一个标准的长度单位,1pt=1/72英寸,用于印刷业,非常简单易用;
  • dp(与密度无关的像素):一种基于屏幕密度的抽象单位。在每英寸160点的显示器上,1dp = 1px。
  • dip:与dp相同,多用于android/ophone示例中。
    device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA 推荐使用这个,不依赖像素。
  • sp(与刻度无关的像素):与dp类似,但是可以根据用户的字体大小首选项进行缩放。
    scaled pixels(放大像素). 主要用于字体显示best for textsize。

为了使用户界面能够在现在和将来的显示器类型上正常显示,建议大家始终使用sp作为文字大小的单位,Android默认的字号也是用的sp。

将dip作为其他元素的单位,比如长度、高度。当然,也可以考虑使用矢量图形,而不是用位图。

 

dp是与密度无关,sp除了与密度无关外,还与scale无关。

如果屏幕密度为160,这时dp和sp和px是一样的。1dp=1sp=1px,但如果使用px作单位,如果屏幕大小不变(假设还是3.2寸),而屏幕密度变成了320。

那么原来TextView的宽度设成160px,在密度为320的3.2寸屏幕里看要比在密度为160的3.2寸屏幕上看短了一半。

但如果设置成160dp或160sp的话。系统会自动将width属性值设置成320px的。

也就是160 * 320 / 160。其中320 / 160可称为密度比例因子。也就是说,如果使用dp和sp,系统会根据屏幕密度的变化自动进行转换.

分享到:
评论

相关推荐

    Android高薪之路:Android程序员面试宝典 李宁

    2 3 2 android:padding属性和android:layout margin属性 2 3 3 android:layout gravity属性和android:gravity属性 2 4 高级布局技术 第3章 组件 3 1 组件的属性 3 2 文本组件 3 3 按钮组件 3 4 图像组件 3 5 进度...

    超有用的安卓学习材料(1)

    3、Android 的Margin和Padding属性 8 4、android中finish()与system.exit(0)的区别 8 5、获取手机屏幕分辨率(在继承Activity的类中用) 9 6、仿百度谷歌搜索自动提示框 9 7、 Android Activity启动模式分析 9 8、改变...

    Android中gravity、layout_gravity、padding、margin的区别小结

    属性是对该view 内容的限定.比如一个button 上面的text. 你可以设置该text 在view的靠左,靠右等位置.该属性就干了这个. layout_gravity 是用来设置该view相对与起父view 的位置.比如一个button 在linearlayout...

    《Android自定义组件开发详解》

    6.4.2 读取来自style和theme中的属性 181 6.5 案例1:圆形ImageView组件 186 6.6 案例2:验证码组件CodeView 190 6.7 练习作业 202 第七章 自定义容器 204 7.1 概述 204 7.2 ViewGroup类 205 7.2.1 ViewGroup常用...

    Android学习记录

    老师心得 1.每一个页面会对应一个activity 2.每一个activity对一个XML文件 3.界面在XML文件里写 ...layout_margin,padding:外边距,内边距 控件单位用dp,仅有用dp(380~400dp能适应大多数手机) 文字大小

    postcss-safe-area:为安全区域环境变量添加浏览器后备

    旧的iOS和Android浏览器不支持CSS安全区域所需的环境变量。 该插件添加了所有必要的后备,并支持calc()以及多个边距或填充值的简写属性。. foo { padding-top : env (safe-area-inset-top); margin : 5 em 5 em ...

    Android 自定义TextView去除paddingTop和paddingBottom

    Android 自定义TextView去除paddingTop和paddingBottom 最近项目中需要用libgdx渲染一个Android的TextView, 但是绘制出来的TextView总是默认带有paddingTop和paddingBottom, 如下图所示: 网上有很多解决方案,...

    SuperButton-这真的可能是最好用的按钮了.zip

     android:layout_margin="20dp"  app:color_normal="@color/color_accent"  app:corner="10dp"  app:text="@string/poetry_1"  app:textColor="@color/color_white"  app:textSize="22sp" />属性解释按钮文字...

    DynamicView:运行时xml布局使引擎膨胀,可以远程更新视图

    <RBox sn='000001'> <VBox background='#80E0E0E0 20 20 0 0' padding='18 18 18 10' margin='14'> <Text text='{title}' fontSize='20' color='black'> <Text text='\u91d1\u989d' margin='0 10 0 0'> <RBox> <...

Global site tag (gtag.js) - Google Analytics