安卓-屏幕显示

java 复制代码
package com.example.helloworld;

import android.content.Context;
import android.util.DisplayMetrics;
import android.view.WindowManager;

public class CommonUtils {
    /**
     * dp转px
     * @param context
     * @param dpvalue
     * @return
     */
    public static int dip2px(Context context, float dpvalue) {
        float scale = context.getResources().getDisplayMetrics().density;
        return (int) (dpvalue * scale + 0.5f);//四舍五入取整
    }

    /**
     * px转dp
     * @param context
     * @param pxValue
     * @return
     */
    public static int px2dip(Context context, float pxValue) {
        float scale = context.getResources().getDisplayMetrics().density;
        return (int) (pxValue / scale + 0.5f);//四舍五入取整
    }

    /**
     * 获取屏幕像素密度
     *
     * @param ctx
     * @return
     */
    public static float getScreenDensity(Context ctx) {
        //从系统中获取窗口管理器
        WindowManager wm = (WindowManager) ctx.getSystemService(Context.WINDOW_SERVICE);
        DisplayMetrics dm = new DisplayMetrics();
        wm.getDefaultDisplay().getMetrics(dm);
        return dm.density;
    }

    /**
     * 获取屏幕的宽度
     *
     * @param ctx
     * @return
     */
    public static int getScreenWidth(Context ctx) {
        WindowManager wm = (WindowManager) ctx.getSystemService(Context.WINDOW_SERVICE);
        DisplayMetrics dm = new DisplayMetrics();
        wm.getDefaultDisplay().getMetrics(dm);
        return dm.widthPixels;
    }

    /**
     * 获取屏幕的高度
     * @param ctx
     * @return
     */
    public static int getScreenHeight(Context ctx) {
        WindowManager wm = (WindowManager) ctx.getSystemService(Context.WINDOW_SERVICE);
        DisplayMetrics dm = new DisplayMetrics();
        wm.getDefaultDisplay().getMetrics(dm);
        return dm.heightPixels;
    }
}
相关推荐
空中海3 分钟前
第三章:状态管理与 Jetpack 架构组件
android·架构
峥嵘life4 分钟前
Android + Kiro AI软件开发实战教程
android·后端·学习
流星雨在线9 分钟前
安卓路由技术选型调研
android·therouter·arouter
千里马学框架24 分钟前
Ubuntu 24 搭建aosp源码环境详细笔记
android·linux·ubuntu·framework·安卓·aosp·源码环境
空中海1 小时前
安卓 第六章:主题、样式与国际化
android
Ehtan_Zheng1 小时前
7个Kotlin Delegate
android
用户69371750013841 小时前
2026 Android 开发,现在还能入行吗?
android·前端·ai编程
YBZha1 小时前
Android Camera2 + OpenGL 竖屏或横屏预览会有“轻微拉伸”
android
seabirdssss2 小时前
Appium 在小米平板上的安装受限与闪退排查
android·appium·电脑
喂_balabala2 小时前
Kotlin-属性委托
android·开发语言·kotlin