TypedValue.applyDimension的使用

TypedValue.applyDimension是一个将各种单位的值转换为像素的方法

用法TypedValue.applyDimension(int unit, float value,DisplayMetrics metrics)

源码分析:

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;
    }

使用:

//其他sp,dp转px
    public int value2px(int typeValue,int dpVal)
    {
        return (int) TypedValue.applyDimension(typeValue, dpVal, getResources().getDisplayMetrics());
    }

  

时间: 2024-10-08 22:00:24

TypedValue.applyDimension的使用的相关文章

[Android Pro] Android TypedValue.applyDimension()的用法

reference to  : http://blog.csdn.net/voo00oov/article/details/45745819 这个方法的作用是 把Android系统中的非标准度量尺寸转变为标准度量尺寸 (Android系统中的标准尺寸是px, 即像素) Android系统中的尺寸单位有: 这个方法的作用是 把Android系统中的非标准度量尺寸转变为标准度量尺寸 (Android系统中的标准尺寸是px, 即像素) Android系统中的尺寸单位有: 标准单位: px (px是安卓

android TypedValue.applyDimension()的探究

这个方法是转变为标准尺寸的一个函数,例如 int size = (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 20, context.getResources().getDisplayMetrics()); 这里COMPLEX_UNIT_DIP是单位,20是数值,也就是20dp. 详细探究: //转换dip为px 2 public static int convertDipOrPx(Context context, int

android.util.TypedValue.applyDimension

先看一个例子: int size = (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 3, context.getResources().getDisplayMetrics()); 这行代码是把在当前屏幕分辨率的状态下将dip为3的值转换成单位为px值 下面是API介绍: public static float applyDimension (int unit, float value, DisplayMetrics met

android TypedValue.applyDimension()的作用

这个方法是转变为标准尺寸的一个函数,例如 int size = (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, 20, context.getResources().getDisplayMetrics()); 这里COMPLEX_UNIT_SP是单位,20是数值,也就是20sp.

TypedValue.applyDimension()的作用

这个是我整理下来的,留着以后看的 int padding = (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 4, getActivity().getResources().getDisplayMetrics()); text.setPadding(padding, padding, padding, padding); 我的理解:padding的单位是:dip, padding的大小是:4 , 最后将text的上下左右pa

android中TypedValue.applyDimension()的作用

android TypedValue.applyDimension()的作用这个方法是转变为标准尺寸的一个函数,例如int size =(int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, 20,context.getResources().getDisplayMetrics()); 这里COMPLEX_UNIT_SP是单位,20是数值,也就是20sp.

TypedValue.applyDimension 中dp和sp之间转化的真相

最近在看了许多关于dp-px,px-dp,sp-px,px-sp之间转化的博文,过去我比较常用的方式是: 1 //转换dip为px 2 public static int convertDipOrPx(Context context, int dip) { 3 float scale = context.getResources().getDisplayMetrics().density; 4 return (int)(dip*scale + 0.5f*(dip>=0?1:-1)); 5 } 6

公共代码参考(TypedValue)

package com.fredric.util; import android.content.Context; import android.util.TypedValue; /*- * 像素转换相关 * COMPLEX_UNIT_PX:像素 * COMPLEX_UNIT_DIP:设备独立像素(与硬件设备无关) * COMPLEX_UNIT_PT:标准长度单位1/72英寸 * COMPLEX_UNIT_IN:英寸 * COMPLEX_UNIT_MM:毫米 * Google建议: * 像素类的

基于android平台的模拟血压计实现(surfaceView的熟练使用)

这个是我根据上一篇文章的温度计改的血压计,因为客户对温度计还有血压计的需求是一样的,所以,我就选择了偷懒,直接用温度计的代码改了一概,就成了血压计的了 1 package com.example.test; 2 3 4 5 import android.content.Context; 6 import android.graphics.Bitmap; 7 import android.graphics.Canvas; 8 import android.graphics.Color; 9 imp