我想实现桌面壁纸不滚动也不裁剪,通过网上搜到获取屏幕宽高的方法都是得到除了StatusBar和NavigationBar的。
@@ -120,8 +120,16 @@ public final class WallpaperUtils {
defaultHeight = maxDim;
}
DisplayMetrics dm = new DisplayMetrics();
- windowManager.getDefaultDisplay().getMetrics(dm);
- sDefaultWallpaperSize = new Point(dm.widthPixels, dm.heightPixels);
+ Display d = windowManager.getDefaultDisplay();
+ d.getMetrics(dm);
+ try {
+ android.graphics.Point realSize = new android.graphics.Point();
+ Display.class.getMethod("getRealSize",
+ android.graphics.Point.class).invoke(d, realSize);
+ sDefaultWallpaperSize = new Point(dm.widthPixels, realSize.y);
+
+ } catch (Exception ignored) {
+ }
}
减去的那几行得到不是真实的宽高,后面添加的就是得到真实的宽高。