use*_*732 6 android screen width
如何获得屏幕宽度dpi?
DisplayMetrics metrics = getResources().getDisplayMetrics();
int f = metrics.densityDpi;
// getWindowManager().getDefaultDisplay().getMetrics(metrics);
int width = metrics.widthPixels;
int dp = (int)(width / (metrics.density));
Run Code Online (Sandbox Code Playgroud)
我这样做,所以让我假设我的densitydpi是120 ..和widthpixel 240 ..通过计算得到240/0.75 ....所以我有320宽度?
然而情况并非如此......我认为widthdpi小于320 ...因为320在屏幕上跟我错了....使用120个作品.
在Nexus 4上......宽度为768,密度为320 ......我除以768/2,得到384正确的宽度密度dpi(它可以工作)
但在其他像240,160,120密度dpi ... widthdpi的计算似乎是错误的...
ian*_*ake 13
px = dp * (dpi / 160)
Run Code Online (Sandbox Code Playgroud)
因此
dp = px / (dpi / 160)
Run Code Online (Sandbox Code Playgroud)
或者等价的
dp = px * 160 / dpi
Run Code Online (Sandbox Code Playgroud)
请记住,dp代表"与密度无关的像素" - 即,ldpi设备上的1dp与xxhdpi设备上的物理尺寸相同.因此,您应该期望所有手机的宽度大约为300-400dp,请注意dp的铲斗尺寸:
| 归档时间: |
|
| 查看次数: |
14988 次 |
| 最近记录: |