关于android尺寸转换

inputSpaceWidth = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, inputSpaceWidth,

                getResources().getDisplayMetrics());

第一个参数是第二个参数的单位。

源码如下

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 java文件中,要创建一个大小为40dp*40dp的Bitmap

int inputSpaceWidth = 40;
int inputSpaceHeight = 40;
inputSpaceWidth = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, inputSpaceWidth,

                getResources().getDisplayMetrics());
inputSpaceHeight = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, inputSpaceHeight,

                getResources().getDisplayMetrics());
//假如inputBitmap是已经获取过的Bitmap,
//无论是通过BitmapFactory.decodeResource获取的还是Bitmap.createBitmap获取的
inputBitmap = Bitmap.createScaledBitmap(inputBitmap, inputSpaceWidth, inputSpaceHeight, true);

你可能感兴趣的:(关于android尺寸转换)