getDimension,getDimensionPixelOffset和getDimensionPixelSize
dimens.xml里写上三个变量:
- <dimen name="activity_vertical_margin1">16dp</dimen>
- <dimen name="activity_vertical_margin2">16px</dimen>
- <dimen name="activity_vertical_margin3">16sp</dimen>
读取这三个变量:
- float a1=getResources().getDimension(R.dimen.activity_vertical_margin1);
- int a2=getResources().getDimensionPixelOffset(R.dimen.activity_vertical_margin1);
- int a3=getResources().getDimensionPixelSize(R.dimen.activity_vertical_margin1);
- float b1=getResources().getDimension(R.dimen.activity_vertical_margin2);
- int b2=getResources().getDimensionPixelOffset(R.dimen.activity_vertical_margin2);
- int b3=getResources().getDimensionPixelSize(R.dimen.activity_vertical_margin3);
- float c1=getResources().getDimension(R.dimen.activity_vertical_margin3);
- int c2=getResources().getDimensionPixelOffset(R.dimen.activity_vertical_margin3);
- int c3=getResources().getDimensionPixelSize(R.dimen.activity_vertical_margin3);
- Log.i("test", "getDimension= "+a1+", getDimensionPixelOffset="+a2+",getDimensionPixelSize="+a3);
- Log.i("test", "getDimension= "+b1+", getDimensionPixelOffset="+b2+",getDimensionPixelSize="+b3);
- Log.i("test", "getDimension= "+c1+", getDimensionPixelOffset="+c2+",getDimensionPixelSize="+c3);
对于设备1(1280*720,160dpi,density=1.0):
- 09-29 19:34:15.202: I/test(9732): getDimension= 16.0, getDimensionPixelOffset=16,getDimensionPixelSize=16
- 09-29 19:34:15.202: I/test(9732): getDimension= 16.0, getDimensionPixelOffset=16,getDimensionPixelSize=16
- 09-29 19:34:15.202: I/test(9732): getDimension= 16.0, getDimensionPixelOffset=16,getDimensionPixelSize=16
对于设备2(480*800,240dpi,density=1.5):
- 09-29 19:35:07.376: I/test(5902): getDimension= 24.0, getDimensionPixelOffset=24,getDimensionPixelSize=24
- 09-29 19:35:07.376: I/test(5902): getDimension= 16.0, getDimensionPixelOffset=16,getDimensionPixelSize=24
- 09-29 19:35:07.376: I/test(5902): getDimension= 24.0, getDimensionPixelOffset=24,getDimensionPixelSize=24
可见getDimension和getDimensionPixelOffset的功能差不多,都是获取某个dimen的值,如果是dp或sp的单位,将其乘以density,如果是px,则不乘;两个函数的区别是一个返回float,一个返回int.
getDimensionPixelSize则不管写的是dp还是sp还是px,都会乘以denstiy.
getDimension,getDimensionPixelOffset和getDimensionPixelSize的更多相关文章
- android 通过getDimension,getDimensionPixelOffset和getDimensionPixelSize获取dimens.xml文件里面的变量值
dimens.xml里写上三个变量: <dimen name="activity_vertical_margin1">16dp</dimen> <di ...
- android: getDimension, getDimensionPixelOffset 和getDimensionPixelSize 区别
◆结论: getDimension 获取某个dimen的值,如果是dp或sp的单位,将其乘以density,如果是px,则不乘 返回float getDimensionPixelOffset 获取 ...
- Android中getDimension,getDimensionPixelOffset和getDimensionPixelSize 区别
getDimension 获取某个dimen的值,如果是dp或sp的单位,将其乘以density,如果是px,则不乘 返回float getDimensionPixelOffset 获取某个dim ...
- getDimension,getDimensionPixelOffset和getDimensionPixelSize的一点说明
getDimension和getDimensionPixelOffset的功能类似, 都是获取某个dimen的值,但是如果单位是dp或sp,则需要将其乘以density 如果是px,则不乘.并且get ...
- Android getDimension,getDimensionPixelOffset,getDimensionPixelSize
1.例如在onMeasure(int , int)方法中可能要获取自定义属性的值.如: TypedArray a = context.obtainStyledAttributes(attrs, R.s ...
- 【android】getDimension()、getDimensionPixelOffset()和getDimensionPixelSize()区别详解
在自定义控件中使用自定义属性时,经常需要使用java代码获取在xml中定义的尺寸,相关有以下三个函数 getDimension() getDimensionPixelOffset() getDimen ...
- getDimension与getDimensionPixelOffset与getDimensionPixelSize的区别
getDimension() 返回float型px值 精确 getDimensionPixelOffset() 返回int型px值 ...
- getDimension()、getDimensionPixelOffset()和getDimensionPixelSize()区别详解
getDimension()是基于当前DisplayMetrics进行转换,获取指定资源id对应的尺寸.文档里并没说这里返回的就是像素,要注意这个函数的返回值是float,像素肯定是int. getD ...
- [转]Android中dp,px,sp概念梳理以及如何做到屏幕适配
http://blog.csdn.net/jiangwei0910410003/article/details/40509571 今天又开始我的App开发,因为之前一直做的是SDK,所以涉及到界面UI ...
随机推荐
- solaris 服务器配置网络
1. 修改配置文件 vi /etc/hostname.e1000g1 --e1000g1是硬件(网卡)的名称,不同的服务器名称不同 添加/修改:192.168.50.238 ...
- perl6 修改文件并覆盖
use v6; my $filename = 'data.txt'; my $data = slurp $filename; say $data; $data ~~ s/'4'/'ABC'/; say ...
- centos7安装libvirt支持xen
另外还有一个非常棒的用法 假如我要执行iostat这个命令来查看CPU与存储设备状态,可是执行却发现没有这个命令 于是执行yum install iostat,结果说找不到该软件,使用下面的办法可以解 ...
- java===java基础学习(1)---数据类型,运算,变量,常量
今天起开始了java的学习之路,主要学习了数据类型和运算,变量,常量.基本和python有很多相通的地方,所以看起来很容易上手.下面是学习笔记! package testbotoo; public c ...
- interrupted()和isInterrupted()比较+终止线程的正确方法+暂停线程
interrupted():测试当前线程[运行此方法的当前线程]是否已经是中断状态,执行后具有将状态标志清除为false的功能. isInterrupted():测试线程对象是否已经是中断状态,但不清 ...
- HTML 知识点总结
HTML基本语法 HTML标签 单标签 <标签名>或<标签名 /> 双标签 <标签名>内容</标签名> 跟标签也叫元素(根元素) 属性 属性属于标签 一 ...
- 12-6 NSArray
原文:http://rypress.com/tutorials/objective-c/data-types/nsarray NSArray NSArray 是 Objective-C中最常用的数组类 ...
- Nginx集群配置与redis的session共享策略
一.什么是Nginx? Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器.Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Ramb ...
- IE6下面的浮动问题
第一个问题: 在IE6下面overflow:hidden;失效 原因:在IE6/7中子级设置position:relative;属性值后,导致父级的overflow:hidden;失效. ...
- vue 同页面不同参数
项目:详情页中有一个模块为更多产品,点击也是跳转到详情页,也就是相同路由,不同参数. 试过的方法:用this.$router.push,并没有任何反应,没有任何请求,页面也未重新加载,用this.$e ...