现在的位置: 首页 > 编程技术 > 安卓开发 > 正文

一个Android开发有用的工具类-计算屏幕的dp,分辨率和尺寸

2015年11月04日 安卓开发 ⁄ 共 1563字 ⁄ 字号 一个Android开发有用的工具类-计算屏幕的dp,分辨率和尺寸已关闭评论 ⁄ 阅读 757 次
public class DensityUtil {
  /**
   * 将px值转换为dip或dp值,保证尺寸大小不变
   *
   * @param pxValue
   * @param scale
   *          (DisplayMetrics类中属性density)
   * @return
   */
  public static int px2dip(Context context, float pxValue) {
    final float scale = context.getResources().getDisplayMetrics().density;
    return (int) (pxValue / scale + 0.5f);
  }

  /**
   * 将dip或dp值转换为px值,保证尺寸大小不变
   *
   * @param dipValue
   * @param scale
   *          (DisplayMetrics类中属性density)
   * @return
   */
  public static int dip2px(Context context, float dipValue) {
    final float scale = context.getResources().getDisplayMetrics().density;
    return (int) (dipValue * scale + 0.5f);
  }

  /**
   * 将px值转换为sp值,保证文字大小不变
   *
   * @param pxValue
   * @param fontScale
   *          (DisplayMetrics类中属性scaledDensity)
   * @return
   */
  public static int px2sp(Context context, float pxValue) {
    final float fontScale = context.getResources()
        .getDisplayMetrics().scaledDensity;
    return (int) (pxValue / fontScale + 0.5f);
  }

  /**
   * 将sp值转换为px值,保证文字大小不变
   *
   * @param spValue
   * @param fontScale
   *          (DisplayMetrics类中属性scaledDensity)
   * @return
   */
  public static int sp2px(Context context, float spValue) {
    final float fontScale = context.getResources()
        .getDisplayMetrics().scaledDensity;
    return (int) (spValue * fontScale + 0.5f);
  }

  /**
   * 获取屏幕的宽度
   *
   * @param context
   * @return
   */

  public static int getScreenWidth(Context context) {
    WindowManager manager = (WindowManager) context
        .getSystemService(Context.WINDOW_SERVICE);
    Display display = manager.getDefaultDisplay();
    return display.getWidth();
  }

  /**
   * 获取屏幕的高度
   *
   * @param context
   * @return
   */
  public static int getScreenHeight(Context context) {
    WindowManager manager = (WindowManager) context
        .getSystemService(Context.WINDOW_SERVICE);
    Display display = manager.getDefaultDisplay();
    return display.getHeight();
  }
}
还有这篇文章:http://www.jiangwenrou.com/android获取屏幕像素.html

抱歉!评论已关闭.