Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2631126
  • 博文数量: 315
  • 博客积分: 3901
  • 博客等级: 少校
  • 技术积分: 3640
  • 用 户 组: 普通用户
  • 注册时间: 2011-05-08 15:32
个人简介

知乎:https://www.zhihu.com/people/monkey.d.luffy Android高级开发交流群2: 752871516

文章分类

全部博文(315)

文章存档

2019年(2)

2018年(1)

2016年(7)

2015年(32)

2014年(39)

2013年(109)

2012年(81)

2011年(44)

分类: Android平台

2013-06-02 22:18:39

布局中文件中【控件间距参数详解以及单位选择】

注意:例如:android:layout_gravityandroid:gravity的区别:

android:layout_gravity:此控件相对父控件的相对位置

android:gravity:此控件中的内容相对此控件的相对位置

控件间距参数详解

padding:控件中的文字距离本身控件边框的距离
paddingButtom:控件中的文字距离本身控件下边缘距离

【其他方位类同】
margin:控件整体距离相对另外一个控件的距离
marginBottom:控件整体距离父控件底边的距离

【其他方位类同】

android:drawableBottom:在text的下方输出一个drawable,如图片。如果指定一个颜色的话会把text的背景设为该颜色,并且同  时和background使用时覆盖后者。
android:drawableLeft:在text的左边输出一个drawable,如图片。 
android:drawablePadding:设置text与drawable(图片)的间隔,与drawableLeft、drawableRight、drawableTop、drawableBottom一起使用,可设置为负数,单独使用没有效果。
android:drawableRight:在text的右边输出一个drawable。 
android:drawableTop:在text的正上方输出一个drawable。

合适参数选择:

px(像素):屏幕上的点。pixels(像素). 不同设备显示效果相同,一般我们HVGA代表320x480像素,这个用的比较多。

in(英寸):长度单位。

mm(毫米):长度单位。

pt(磅):1/72英寸。 point,是一个标准的长度单位,1pt=1/72英寸,用于印刷业,非常简单易用;

dp(与密度无关的像素):一种基于屏幕密度的抽象单位。在每英寸160点的显示器上,1dp = 1px。

dip:与dp相同,多用于android/ophone示例中。建议使用这个(与像素无关)

sp(与刻度无关的像素):与dp类似,但是可以根据用户的字体大小首选项进行缩放。

为了使用户界面能够在现在和将来的显示器类型上正常显示,建议大家始终使用sp作为文字大小的单位,将dip作为其他元素的单位。当然,也可以考虑使用矢量图形,而不是用位图。

常用的方法:

 DisplayMetrics dm = new DisplayMetrics();  

  activity.getWindowManager().getDefaultDisplay().getMetrics(dm);  

  density = dm.density;  //密度

  densityDpi = dm.densityDpi;//获得设备每英寸多少像素

 

[java] view plaincopy
  1. /**  
  2.  * dip转化为像素  
  3.  * @param dip  
  4.  * @return  
  5.  */    
  6.   public static int getPx(int dip) {    
  7.     return (int) (dip * density);    
  8.     // return (int)(dip*(densityDpi/160));     
  9.   }    
  10.    
  11. /**  
  12.  * 像素转化为dip  
  13.  * @param px  
  14.  * @return  
  15.  */    
  16.  public static int getDip(int px) {    
  17.     return (int) (px / density);    
  18.     // return (int)((px*160)/densityDpi);     
  19.  }    

公式:dip=(1px*160)/Dpi;

作者:http://blog.csdn.net/aa4790139/article/details/6395683

阅读(3800) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~