安卓开发技巧四:手机分辨率处理工具类

/**
 * 
 * @Description:手机分辨率处理工具类
 * @author:
 * @see:
 * @since:
 * @copyright © 
 * @Date:2014年8月13日
 */
public class DensityUtil {  


    /** 
     * 根据手机的分辨率从 dp 的单位 转成为 px(像素) 
     */  
    public static int dip2px(Context context, float dpValue) {  
        final float scale = context.getResources().getDisplayMetrics().density;  
        return (int) (dpValue * scale + 0.5f);  
    }  


    /** 
     * 根据手机的分辨率从 px(像素) 的单位 转成为 dp 
     */  
    public static int px2dip(Context context, float pxValue) {  
        final float scale = context.getResources().getDisplayMetrics().density;  
        return (int) (pxValue / scale + 0.5f);  
    }  
    /**
     * 将px值转换为sp值,保证文字大小不变
     * 
     * @param pxValue
     * @param fontScale(DisplayMetrics类中属性scaledDensity)
     * @return
     */
    public static int px2sp(float pxValue, float fontScale) {
     return (int) (pxValue / fontScale + 0.5f);
    }


    /**
     * 将sp值转换为px值,保证文字大小不变
     * 
     * @param spValue
     * @param fontScale(DisplayMetrics类中属性scaledDensity)
     * @return
     */
    public static int sp2px(float spValue, float fontScale) {
     return (int) (spValue * fontScale + 0.5f);
    }
    
   
    /**
     * 获得屏幕密度
     * @param context
     * @return
     */
    public static int getScreenDensityDpi(Activity context) {
    DisplayMetrics metric = new DisplayMetrics();
    context.getWindowManager().getDefaultDisplay().getMetrics(metric);
    int density = metric.densityDpi; 
    CLog.d("DensityUtil density=", density+"");
    return density;
    }
    
    /**
     * 获得屏幕高度
     * @param context
     * @return
     */
    public static int getScreenHeight(Activity context) {
    DisplayMetrics metric = new DisplayMetrics();
    context.getWindowManager().getDefaultDisplay().getMetrics(metric);
    int screenHeight = metric.heightPixels; 
    CLog.d("DensityUtil screenHight=", screenHeight+"");
    return screenHeight;
    }
    
    /**
     * 获得屏幕宽度
     * @param context
     * @return
     */
    public static int getScreenWidth(Activity context) {
    DisplayMetrics metric = new DisplayMetrics();
    context.getWindowManager().getDefaultDisplay().getMetrics(metric);
    int screenWidth = metric.widthPixels; 
    CLog.d("DensityUtil screenWidth=",screenWidth+"");
    return screenWidth;
    }
    
    
    /**
* 返回状态栏/通知栏的高度
* 
* @param activity
* @return
*/
public static int getStatusHeight(Activity activity) {
Rect frame = new Rect();
activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);
int statusBarHeight = frame.top;
return statusBarHeight;
}
    
   
}  

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。