当前位置: 代码迷 >> Android >> 安卓开发技巧4:手机分辨率处理工具类
  详细解决方案

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

热度:46   发布时间:2016-04-28 02:53:10.0
安卓开发技巧四:手机分辨率处理工具类
/** *  * @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;}       }  

  相关解决方案