屏幕尺寸计算与适配

大神Github:https://github.com/JessYanCoding/AndroidAutoSize.git


px = density*dp; //像素

density = dpi/160;//像素密度

dpi = √(x²+y²)/屏幕尺寸;//dot per inch 每英寸像素点数

width_dp = width_px/density;//宽度dp

height_dp = height_px/density;//高度dp


由于px = density*dp,dp为设计图固定值,想要px宽度/高度恒定,那么只有改变density变量。

DisplayMetrics displayMetrics = getResources().getDisplayMetrics();

        int densityDpi = displayMetrics.densityDpi;

        float scaledDensity = displayMetrics.scaledDensity;

        int widthPixels = displayMetrics.widthPixels;

        int heightPixels = displayMetrics.heightPixels;

        float xdpi = displayMetrics.xdpi;

        float ydpi = displayMetrics.ydpi;

        double size = Math.sqrt((widthPixels / xdpi) * (widthPixels / xdpi) + (heightPixels / ydpi) * (heightPixels / ydpi));

        double dpi = Math.sqrt(widthPixels * widthPixels + heightPixels * heightPixels) / size;

Log.i("Simon","densityDpi = " + densityDpi

+"  scaledDensity = " + scaledDensity

+"  widthPixels = " + widthPixels

+"  heightPixels = " + heightPixels

+"  screenSize = " + screenSize

+"  screenDpi = " + screenDpi

);


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容