getDimension,getDimensionPixelOffset和getDimensionPixelSize的一点说明

getDimension和getDimensionPixelOffset的功能类似,

都是获取某个dimen的值,但是如果单位是dp或sp,则需要将其乘以density

如果是px,则不乘。并且getDimension返回float,getDimensionPixelOffset返回int.

而getDimensionPixelSize则不管写的是dp还是sp还是px,都会乘以denstiy.

代码如下:

[html] view plaincopy

  1. <resources>
  2. <dimen name="dp_01">16dp</dimen>
  3. <dimen name="px_01">16px</dimen>
  4. <dimen name="sp_01">16sp</dimen>
  5. </resources>

[java] view plaincopy

  1. float a1=getResources().getDimension(R.dimen.dp_01);
  2. int a2=getResources().getDimensionPixelOffset(R.dimen.dp_01);
  3. int a3=getResources().getDimensionPixelSize(R.dimen.dp_01);
  4. float b1=getResources().getDimension(R.dimen.px_01);
  5. int b2=getResources().getDimensionPixelOffset(R.dimen.px_01);
  6. int b3=getResources().getDimensionPixelSize(R.dimen.px_01);
  7. float c1=getResources().getDimension(R.dimen.sp_01);
  8. int c2=getResources().getDimensionPixelOffset(R.dimen.sp_01);
  9. int c3=getResources().getDimensionPixelSize(R.dimen.sp_01);
  10. Log.d("test", "getDimension= "+a1+", getDimensionPixelOffset="+a2+",getDimensionPixelSize="+a3);
  11. Log.d("test", "getDimension= "+b1+", getDimensionPixelOffset="+b2+",getDimensionPixelSize="+b3);
  12. Log.d("test", "getDimension= "+c1+", getDimensionPixelOffset="+c2+",getDimensionPixelSize="+c3);

LogCat中查看输出结果:

[java] view plaincopy

  1. //Device (480*800,240dpi,density=1.5):
  2. getDimension= 24.0, getDimensionPixelOffset=24,getDimensionPixelSize=24
  3. getDimension= 16.0, getDimensionPixelOffset=16,getDimensionPixelSize=24
  4. getDimension= 24.0, getDimensionPixelOffset=24,getDimensionPixelSize=24

摘自:http://blog.csdn.net/cnmilan/article/details/38339109

时间: 2024-10-10 14:17:37

getDimension,getDimensionPixelOffset和getDimensionPixelSize的一点说明的相关文章

android 通过getDimension,getDimensionPixelOffset和getDimensionPixelSize获取dimens.xml文件里面的变量值

dimens.xml里写上三个变量: <dimen name="activity_vertical_margin1">16dp</dimen> <dimen name="activity_vertical_margin2">16px</dimen> <dimen name="activity_vertical_margin3">16sp</dimen> 读取这三个变量: fl

android: getDimension, getDimensionPixelOffset 和getDimensionPixelSize 区别

◆结论: getDimension 获取某个dimen的值,如果是dp或sp的单位,将其乘以density,如果是px,则不乘   返回float getDimensionPixelOffset 获取某个dimen的值,如果是dp或sp的单位,将其乘以density,如果是px,则不乘  返回int getDimensionPixelSize 则不管写的是dp还是sp还是px,都会乘以denstiy. ◆代码设置字体大小 tv_test.setTextSize(TypedValue.COMPLE

Android getDimension,getDimensionPixelOffset,getDimensionPixelSize

1.例如在onMeasure(int , int)方法中可能要获取自定义属性的值.如: 1 TypedArray a = context.obtainStyledAttributes(attrs, 2 R.styleable.CascadeLayout); 3 4 try { 5 // 获取xml文件中给自定义属性设置的值 6 mHorizontalSpacing = a.getDimensionPixelSize( 7 R.styleable.CascadeLayout_horizontal_

getDimension()、getDimensionPixelOffset()和getDimensionPixelSize()区别详解

getDimension()是基于当前DisplayMetrics进行转换,获取指定资源id对应的尺寸.文档里并没说这里返回的就是像素,要注意这个函数的返回值是float,像素肯定是int. getDimensionPixelSize()与getDimension()功能类似,不同的是将结果转换为int,并且小数部分四舍五入. getDimensionPixelOffset()与getDimension()功能类似,不同的是将结果转换为int,并且偏移转换(offset conversion,函

getDimension等区别

getDimension,getDimensionPixelOffset,getDimensionPixelSize这个三个方法是用来取dimen.xml的值. getDimension返回一个float,值乘以密度. getDimensionPixelOffset返回一个int,值乘以密度,舍去小数位直接截取为int. getDimensionPixelSize返回一个int,值乘以密度,四舍五入转为int. 注意 如果值为px则不会乘以密度.

[转]Android中dp,px,sp概念梳理以及如何做到屏幕适配

http://blog.csdn.net/jiangwei0910410003/article/details/40509571 今天又开始我的App开发,因为之前一直做的是SDK,所以涉及到界面UI很少,刚开始做Android应用的时候,没有对dp,px,sp等概念有一个深入的了解,只知道他们之间的转化,还有写个转换工具类等.做Android已经有一年多了,现在再次开始App开发,决定没遇到一个概念,必须得弄透彻.好吧,下面进入主题吧: 首先来看一下他们的基本概念: px   :是屏幕的像素点

Android中dp,px,sp概念梳理

今天又开始我的App开发,因为之前一直做的是SDK,所以涉及到界面UI很少,刚开始做Android应用的时候,没有对dp,px,sp等概念有一个深入的了解,只知道他们之间的转化,还有写个转换工具类等.做Android已经有一年多了,现在再次开始App开发,决定没遇到一个概念,必须得弄透彻.好吧,下面进入主题吧: 首先来看一下他们的基本概念: px   :是屏幕的像素点dp   :一个基于density的抽象单位,如果一个160dpi的屏幕,1dp=1pxdip  :等同于dpsp   :同dp相

全新一点公益全返公益APP开发

全新一点公益科技开发,公益APP开发 公益软件开发 (一点公益江先生:185,2911,8412 一点公益全返, 一点公益平台开发. 一.一点公益系统是怎么玩的呢?   首先消费者注册成为一点公益的消费会员(公益信使),信使在任何一家已经入驻的商家那里进行消费,均可以参与"一点公益"消费fan利模式.   1.注册一点公益信使没有任何加盟条件和任何费用   2.注册一点公益信使之后便可以推荐别人注册成为一点公益信使   3.通过你注册的信使在公益联盟商家消费,你可以获得推荐人的激励收益

关于重构工作的一点思考

最近两周一直忙着和重构相关的事情,本文将简要概述从开始制定重构方案,到具体执行的过程中遇到的问题,以及对重构的一点理性思考. 起因: 本系统是2015年11月开始建设,当时为了快速投入使用,大量的烂代码,后期一直保持快速前进,没有进行过实质性的重构. 具体表现: ● 分层不清,sql哪都有,dao有.service也有,就差controller没写了.同样dao也包含业务逻辑. ● sql用的是spring jdbc,并没有使用mybatis,导致sql写起来有些复杂,封装不够基本都是原始sql