1.直接上代码

 

package com.mobile.common_library.manager;

import android.app.Activity;
import android.content.Context;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.os.Build;
import android.provider.Settings;
import android.util.DisplayMetrics;
import android.view.Display;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;

/**
 * author    : xxxxxxxxxxx
 * e-mail    : xxxxxxxxxxx@qq.com
 * date      : 2020/3/09 11:35
 * introduce : 屏幕管理类
 */

public class ScreenManager {
   
   private static final String TAG = "ScreenManager";
   
   /**
    * 根据手机的分辨率从 dp 的单位 转成为 px(像素)
    */
   public static int dpToPx(Context context, float dpValue) {
      final float scale = context.getResources().getDisplayMetrics().density;
      return (int) (dpValue * scale + 0.5f);
   }
   
   /**
    * 根据手机的分辨率从 px(像素) 的单位 转成为 dp
    */
   public static int pxToDp(Context context, float pxValue) {
      final float scale = context.getResources().getDisplayMetrics().density;
      return (int) (pxValue / scale + 0.5f);
   }
   
   /**
    * 将px值转换为sp值,保证文字大小不变
    */
   public static int pxToSp(Context context, float pxValue) {
      final float fontScale = context.getResources().getDisplayMetrics().scaledDensity;
      return (int) (pxValue / fontScale + 0.5f);
   }
   
   /**
    * 将sp值转换为px值,保证文字大小不变
    */
   public static int spToPx(Context context, float spValue) {
      final float fontScale = context.getResources().getDisplayMetrics().scaledDensity;
      return (int) (spValue * fontScale + 0.5f);
   }
   
   /**
    * 拿到资源文件的dp值
    */
   public static int getDimenDp(Context context, int dpValue) {
      return pxToDp(context, context.getResources().getDimension(dpValue));
   }
   
   /**
    * 拿到资源文件的sp值
    */
   public static int getDimenSp(Context context, int spValue) {
      return pxToSp(context, context.getResources().getDimension(spValue));
   }
   
   /**
    * 获取屏幕高度(px)
    */
   public static int getScreenHeight(Context context) {
      return context.getResources().getDisplayMetrics().heightPixels;
   }
   
   /**
    * 获取屏幕宽度(px)
    */
   public static int getScreenWidth(Context context) {
      return context.getResources().getDisplayMetrics().widthPixels;
   }
   
}

 

 

如对此有疑问,请联系qq1164688204。

推荐Android开源项目

项目功能介绍:RxJava2和Retrofit2项目,添加自动管理token功能,添加RxJava2生命周期管理,使用App架构设计是MVP模式和MVVM模式,同时使用组件化,部分代码使用Kotlin,此项目持续维护中。

项目地址:https://gitee.com/urasaki/RxJava2AndRetrofit2

 

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐