Android TypedValue.applyDimension()的用法

转载 2016年08月30日 16:55:54

这个方法的作用是 把Android系统中的非标准度量尺寸转变为标准度量尺寸 (Android系统中的标准尺寸是px, 即像素)

Android系统中的尺寸单位有: 

标准单位: px (px是安卓系统内部使用的单位, dp是与设备无关的尺寸单位 )

非标准单位: dp, in, mm, pt, sp

TypedValue.applyDimension()方法的功能就是把非标准尺寸转换成标准尺寸, 如: 

dp->px:  TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 20, context.getResources().getDisplayMetrics());

in->px: TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_IN, 20, context.getResources().getDisplayMetrics());

mm->px: TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_MM, 20, context.getResources().getDisplayMetrics());

pt->px: TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_PT, 20, context.getResources().getDisplayMetrics());

sp->px: TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, 20, context.getResources().getDisplayMetrics());


如果你还是不太理解, 请看applyDimension()方法的源码:  

/**
 * Converts an unpacked complex data value holding a dimension to its final floating 
 * point value. The two parameters <var>unit</var> and <var>value</var>
 * are as in {@link #TYPE_DIMENSION}.
 *  
 * @param unit The unit to convert from.
 * @param value The value to apply the unit to.
 * @param metrics Current display metrics to use in the conversion -- 
 *                supplies display density and scaling information.
 * 
 * @return The complex floating point value multiplied by the appropriate 
 * metrics depending on its unit. 
 */
public static float applyDimension(int unit, float value,
                                   DisplayMetrics metrics)
{
    switch (unit) {
    case COMPLEX_UNIT_PX:
        return value;
    case COMPLEX_UNIT_DIP:
        return value * metrics.density;
    case COMPLEX_UNIT_SP:
        return value * metrics.scaledDensity;
    case COMPLEX_UNIT_PT:
        return value * metrics.xdpi * (1.0f/72);
    case COMPLEX_UNIT_IN:
        return value * metrics.xdpi;
    case COMPLEX_UNIT_MM:
        return value * metrics.xdpi * (1.0f/25.4f);
    }
    return 0;
}

Android TypedValue.applyDimension()的用法

这个方法的作用是 把Android系统中的非标准度量尺寸转变为标准度量尺寸 (Android系统中的标准尺寸是px, 即像素) Android系统中的尺寸单位有:  标准单位: px (p...
  • voo00oov
  • voo00oov
  • 2015年05月15日 15:53
  • 5020

TypedValue.applyDimension的作用

public static float applyDimension(int unit, float value, Dis...
  • u011228356
  • u011228356
  • 2015年03月25日 12:34
  • 1215

Android之TypedValue.applyDimension()方法的使用

Android之TypedValue.applyDimension()方法的使用TypedValue是一个工具类,他是一个动态容器。具体是做什么用这里不作介绍了。主要是要了解applyDimensio...
  • qq_27630169
  • qq_27630169
  • 2016年09月07日 19:53
  • 923

TypedValue.applyDimension的用法和转换的真相

很经常用到TypedValue.applyDimension这个方法,之前自己没有去看源码,趁现在看了源码分析记录一下。 TypedValue.applyDimension是一个将各种单位的值转换为...
  • jeffleo
  • jeffleo
  • 2016年07月22日 15:26
  • 2595

TypedValue.applyDimension用法

这个方法的作用是 把Android系统中的非标准度量尺寸转变为标准度量尺寸 (Android系统中的标准尺寸是px, 即像素) Android系统中的尺寸单位有:  标准单位: px (px...
  • qq_30562339
  • qq_30562339
  • 2016年10月28日 15:20
  • 269

关于动态获取设置像素大小以及TypedValue.applyDimension()的使用

大多数情况下,我们要考虑手机的适配问题,以前做项目的时候,都是以480为标准,现在手机越来越发达,都以720为标准(大多数)进行屏幕适配.进行适配的话,免不了用dimens文件,在文件中存储需要用到的...
  • u011200844
  • u011200844
  • 2015年01月06日 16:04
  • 1509

android TypedValue.applyDimension() 说明

这个方法是转变为标准尺寸的一个函数  DisplayMetrics dm = getResources().getDisplayMetrics(); tabTextSize = (int) Typ...
  • zsg88
  • zsg88
  • 2015年01月19日 01:27
  • 279

安卓开发之TypedValue.applyDimension的使用

方法说明:applyDimension 是TypedValue的一个静态方法,主要用来将其他尺寸单位(例如dp,sp)转换为像素单位px,从另一方面说:给尺寸数字加上了单位(java中,尺寸单位一般为...
  • cxmscb
  • cxmscb
  • 2016年06月26日 13:19
  • 1339

android TypedValue.applyDimension()的作用

这个方法是转变为标准尺寸的一个函数,例如int size = (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 20, conte...
  • xj626361950
  • xj626361950
  • 2015年01月20日 11:39
  • 308

android中 TypedValue.applyDimension 的作用

这个方法的作用是将我们在布局中用到的dp.sp等单位转换成标准的尺寸的一个函数。 mMargin = (int) TypedValue.applyDimension(TypedValue.COMPL...
  • huagjie
  • huagjie
  • 2015年11月17日 16:07
  • 162
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android TypedValue.applyDimension()的用法
举报原因:
原因补充:

(最多只允许输入30个字)