屏幕尺寸計算與適配

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


px = density*dp; //像素

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

dpi = √(x2+y2)/屏幕尺寸;//dot per inch 每英寸像素點數(shù)

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

);


?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容