在我们的Android开发中,很多时候都会用到通过取屏幕的大小来确定UI或者其它的用途
在有一些时候,根据不同的机型,通过取屏幕的宽高可以取得的值不正确。(有单位差异和手机厂商不同)
前两天发现在程序中取一个800*480的手机时为533*320,但有的又正常,不知道到底要不要通过“pixs =dips * (density/160)”
来算。如果你也遇到这种问题,可以用以下代码解决:(如果还不行我也不知道了)
1.
Display display = getWindowManager().getDefaultDisplay();
// int height = display.getHeight();
// int width = display.getWidth();
DisplayMetrics dm = new DisplayMetrics();
dm = getResources().getDisplayMetrics();//如果取得的height与width值与实际值不一致
display.getMetrics(dm);
int heightPixels = dm.heightPixels;
int widthPixels = dm.widthPixels;
2.
在manifest中添加这段配置
<supports-screens
android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:resizeable="true"
android:anyDensity="true" />