安卓-屏幕显示

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;
    }
}
相关推荐
奶油话梅糖1 小时前
苹果的内核跑上了安卓手机:2,631 Star 的 HakiOS 让 XNU 在 Adreno GPU 上画出 118 帧
android·macos·智能手机
恋猫de小郭1 小时前
Flutter THLC 的 WebView 滚动终于从 70 FPS 提升到 120 FPS
android·前端·flutter
好的佩奇12 小时前
Dart 之扩展类型
android·flutter·dart
alexhilton14 小时前
2027 Android 开发者路线图:学习、面试与 AI
android·kotlin·android jetpack
灿飞屋16 小时前
Kotlin与Java虚拟机三:控制流
android·java·开发语言·后端·python·kotlin·安卓
疯华整猫17 小时前
我用 Trae 把 Android 内存账重算了一遍
android·性能优化·源码
TimeFine19 小时前
AI 编程工作流的设计:从人工判断到 AI裁判
android·ai编程
阿杰m19 小时前
Android源码第四章:Android 系统启动——App 的第一行代码从哪来?
android
疯华整猫1 天前
混淆起初根本不是为了防破解:我用 Trae 把 Android 混淆这二十来年重跑了一遍
android·人工智能·计算机视觉
Carson带你学Android1 天前
AI时代,你的 App 会被 Agent 这三种方式调用
android·ai编程