zoukankan      html  css  js  c++  java
  • Android单位转换 (px、dp、sp之间的转换工具类)

       在Android开发中,涉及到屏幕视频问题的时候,px、dp、sp之间的转换比较重要的一部分,所以杨哥整理了一个工具类给大伙用。

    package com.zw.express.tool;


    import android.content.Context;
    import android.util.DisplayMetrics;
    /**
     * ydc
     * @author Administrator
     *
     */
    public class DensityUtils {
     /**
         * 根据手机的分辨率从 dip 的单位 转成为 px(像素)
         */
    public static int dp2px(Context context, float dpValue) {
    DisplayMetrics dm = context.getResources().getDisplayMetrics();
    final float scale = dm.density;
    return (int) (dpValue * scale + 0.5f);
    }


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


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



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

    }

  • 相关阅读:
    Ubuntu上使用Latex
    Ubuntu18.04 解压文件名乱码的解决方法
    Android 编译 opencv
    android 使用编译好的sdk
    https协议加密原理介绍(一)
    java 面试题目 class.forName和load的区别
    给进程设置环境变量
    Maven 编译jdk配置
    Docker积累
    潜谈单例模式
  • 原文地址:https://www.cnblogs.com/xinanheishao/p/7011386.html
Copyright © 2011-2022 走看看