屏幕适配:
像素: 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
手机品牌: Pandora
手机型号: A1
SDK版本: 23
系统版本: 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
在资源文件中,实际显示宽高计算: (图片像素/资源文件dpi)*手机dpi
例如: 一张高为550px的图片放在资源文件夹mipmap-xxhdpi中,则屏幕密度为560dpi的手机中显示的高度为 (550/480)*560 = 642px
获取屏幕参数:
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 = "手机" +
"\n手机品牌:\t\t\t\t\t\t" + android.os.Build.BRAND +
"\n手机型号:\t\t\t\t\t\t" + android.os.Build.MODEL +
"\nSDK版本:\t\t\t\t\t\t" + Build.VERSION.SDK_INT +
"\n系统版本:\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);
}
网友评论