? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
屏幕適配:
像素: px?
像素密度: dpi(px/inch)
屏幕密度: 像素密度/160
在像素密度為 160dpi 時, 1dp=1px 移剪,因此誓斥,像素密度為320dpi,即屏幕密度為2時斯棒,1dp=2px
三星Note8-N9500:
屏幕寬度(像素):1440
屏幕高度(像素):2792
屏幕密度(0.75 / 1.0 / 1.5):3.5
像素密度dpi(120 / 160 / 240):560
屏幕寬度(dp):411
屏幕高度(dp):797
華為 GRA-TL00:
屏幕寬度(像素):1080
屏幕高度(像素):1794
屏幕密度(0.75 / 1.0 / 1.5):3.0
像素密度dpi(120 / 160 / 240):480
屏幕寬度(dp):360
屏幕高度(dp):598
手機(jī)品牌: Pandora
手機(jī)型號: A1
SDK版本: 23
系統(tǒng)版本: 6.0.1
屏幕寬度(像素): 1334px
屏幕高度(像素): 750px
屏幕寬度(DP): 667.0dp
屏幕高度(DP): 375.0dp
屏幕密度(0.75 / 1.0 / 1.5): 2.0
像素密度DPI(120 / 160 / 240): 320
適配:
mipmap-ldpi 120dpi 0.75
mipmap-mdpi 160dpi 1
mipmap-hdpi 240dpi 1.5
mipmap-xhdpi 320dpi 2
mipmap-xxhdpi 480dpi 3
mipmap-xxxhdpi 640dpi 4
在資源文件中盾致,實(shí)際顯示寬高計算: (圖片像素/資源文件dpi)*手機(jī)dpi
例如: 一張高為550px的圖片放在資源文件夾mipmap-xxhdpi中,則屏幕密度為560dpi的手機(jī)中顯示的高度為 (550/480)*560 = 642px
獲取屏幕參數(shù):
private void getDisplay() {
? ? ? ? DisplayMetrics metric = new DisplayMetrics();
? ? ? ? getWindowManager().getDefaultDisplay().getRealMetrics(metric);
? ? ? ? // 屏幕寬度(像素)
? ? ? ? int width = metric.widthPixels;
? ? ? ? // 屏幕高度(像素)
? ? ? ? int height = metric.heightPixels;
? ? ? ? // 屏幕密度(1.0 / 1.5 / 2.0)
? ? ? ? float density = metric.density;
? ? ? ? // 屏幕密度DPI(160 / 240 / 320)
? ? ? ? int densityDpi = metric.densityDpi;
? ? ? ? String info = "手機(jī)" +
? ? ? ? ? ? ? ? "\n手機(jī)品牌:\t\t\t\t\t\t" + android.os.Build.BRAND +
? ? ? ? ? ? ? ? "\n手機(jī)型號:\t\t\t\t\t\t" + android.os.Build.MODEL +
? ? ? ? ? ? ? ? "\nSDK版本:\t\t\t\t\t\t" + Build.VERSION.SDK_INT +
? ? ? ? ? ? ? ? "\n系統(tǒng)版本:\t\t\t\t\t\t" + android.os.Build.VERSION.RELEASE +
? ? ? ? ? ? ? ? "\n屏幕寬度(像素):\t\t\t\t\t" + width +
? ? ? ? ? ? ? ? "\n屏幕高度(像素):\t\t\t\t\t" + height +
? ? ? ? ? ? ? ? "\n屏幕寬度(DP):\t\t\t\t\t" + width / density + "dp" +
? ? ? ? ? ? ? ? "\n屏幕高度(DP):\t\t\t\t\t" + height / density + "dp" +
? ? ? ? ? ? ? ? "\n屏幕密度(0.75 / 1.0 / 1.5):\t\t" + density +
? ? ? ? ? ? ? ? "\n屏幕密度DPI(120 / 160 / 240):\t" + densityDpi +
? ? ? ? ? ? ? ? "\n10dp = " + getResources().getDimension(R.dimen.dp_10) + "px" + " = " + getResources().getDimension(R.dimen.dp_10) / density + "dp" +
? ? ? ? ? ? ? ? "\n20dp = " + getResources().getDimension(R.dimen.dp_20) + "px" + " = " + getResources().getDimension(R.dimen.dp_20) / density + "dp" +
? ? ? ? ? ? ? ? "\n100dp = " + getResources().getDimension(R.dimen.dp_100) + "px" + " = " + getResources().getDimension(R.dimen.dp_100) / density + "dp";
? ? ? ? Log.d("System INFO", info);
? ? }