公共代码参考(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建议:
 * 像素类的采用DIP,字体大小类的采用PX
 */
public class DensityUtils {
    
    /*-
     * dp2px
     * 像素密度 = 分辨率/尺寸
     * 将dip转换为pixel,应用场景如:
     * setPadding 方法的单位是pixel,需要做转换
     */
    public static int dp2px(Context context, float dp){
        
        return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,  
            dp, context.getResources().getDisplayMetrics());     
    }
    
    /*-
     * px2dp
     */
    public static float px2dp(Context context, float pxVal){
        //获取屏幕密度
       final float scale = context.getResources().getDisplayMetrics().density;          
       return (pxVal / scale);  
    }
}

 

posted @ 2013-04-03 16:42  Fredric_2013  阅读(335)  评论(0编辑  收藏  举报