getDimension()、getDimensionPixelSize()和getDimensionPixelSize()的区别
来源:互联网 发布:国家开放大学网络教育 编辑:程序博客网 时间:2024/05/21 09:46
getDimension()、getDimensionPixelSize()和getDimensionPixelSize()这三个方法都是获取资源文件dimens.xml中的资源的。
今天来看看他们三者之前的区别。
1. 先看我的dimens.xml中资源的定义:
<dimen name="default_size">21dp</dimen>
2. MainActivity.java中获取资源并且将其打印:
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); float dimension = getResources().getDimension(R.dimen.default_size); Log.e("TAG",String.format("getDimension(): %f", dimension) ); int dimesionPixelSize = getResources().getDimensionPixelSize(R.dimen.default_size); Log.e("TAG",String.format("getDimensionPixelSize(): %d", dimesionPixelSize)); int pixelOffset = getResources().getDimensionPixelOffset(R.dimen.default_size); Log.e("TAG",String.format("getDimensionPixelOffset(): %d", pixelOffset)); //获得屏幕的宽度和高度 DisplayMetrics metric = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metric); int width = metric.widthPixels; // 屏幕宽度(像素) int height = metric.heightPixels; // 屏幕高度(像素) float density = metric.density; // 屏幕密度(0.75 / 1.0 / 1.5) int densityDpi = metric.densityDpi; // 屏幕密度DPI(120 / 160 / 240) Log.e("TAG","width:" + width + " height:" + height + " density:" + density + " densityDpi:" + densityDpi); }}
E/TAG: getDimension(): 31.500000E/TAG: getDimensionPixelSize(): 32E/TAG: getDimensionPixelOffset(): 31
E/TAG: width:480 height:800 density:1.5 densityDpi:240
从最后提条打印的结果可知,我的模拟器的分辨率是 480*800的,屏幕密度是1.5 ,DPI是240。
从打印结果就可以知道, getDimension()、getDimensionPixelSize()和getDeimensionPixelOffset()
三个方法都是将资源dimens.xml中的资源乘以屏幕密度,即 21 * 1.5 = 31.5,只是getDimens()返回的
是float,其余两个方法返回的是int类型的值。其中getDimensionPixelSize()方法返回的实际数值是
四舍五入的,而getDimensionPixelOffset返回的实际数值是去掉结果后面的小数点。
0 0
- getDimension()、getDimensionPixelSize()和getDimensionPixelSize()的区别
- getDimension和getDimensionPixelSize的区别
- getDimension,getDimensionPixelOffset和getDimensionPixelSize的区别
- getDimension,getDimensionPixelOffset和getDimensionPixelSize区别
- getDimension()、getDimensionPixelOffset()和getDimensionPixelSize()区别
- getDimension,getDimensionPixelOffset和getDimensionPixelSize区别
- getDimension,getDimensionPixelOffset和getDimensionPixelSize区别
- getDimension(), getDimensionPixelOffset(), getDimensionPixelSize()的区别
- getDimension/getDimensionPixelOffset/getDimensionPixelSize 区别
- getDimension,getDimensionPixelOffset和getDimensionPixelSize
- getDimension,getDimensionPixelOffset和getDimensionPixelSize
- getDimension,getDimensionPixelOffset和getDimensionPixelSize
- getDimension,getDimensionPixelOffset和getDimensionPixelSize
- getDimension,getDimensionPixelOffset和getDimensionPixelSize
- getResources()的getDimension、getDimensionPixelOffset和getDimensionPixelSize之间区别
- TypedArray实例对象的getDimension()、getDimensionPixelOffset()和getDimensionPixelSize()区别详解
- Android中getDimension,getDimensionPixelOffset和getDimensionPixelSize 区别
- 【android】getDimension()、getDimensionPixelOffset()和getDimensionPixelSize()区别详解
- 逆序数求解--归并法
- 从5个维度观察和改善团队效率
- cartographer初试-turtlebot
- Git学习-安装
- re:uva524素数环
- getDimension()、getDimensionPixelSize()和getDimensionPixelSize()的区别
- 主席树
- JQuery操作input
- 点更新主席树
- PDF文件压缩
- 单例模式详解
- 最小表示
- 百度搜索URL参数你知道多少
- html float 浮动