作为该图像中看出: 的Android屏幕尺寸不一致
我有一个圆角矩形的1082 X 1796的大小,以及我用getWindowManager().getDefaultDisplay()
得到并且如看到的打印屏幕的像素值左下方的圆圈。但是,当我绘制此位图时,会发生这种情况:
屏幕大小是否与getDefaultDisplay()方法不同?我该如何解决?
作为该图像中看出: 的Android屏幕尺寸不一致
我有一个圆角矩形的1082 X 1796的大小,以及我用getWindowManager().getDefaultDisplay()
得到并且如看到的打印屏幕的像素值左下方的圆圈。但是,当我绘制此位图时,会发生这种情况:
屏幕大小是否与getDefaultDisplay()方法不同?我该如何解决?
我认为你的形状被系统视为9patch。它使用第一行和最后一行/列来知道如何调整图像大小以便一致地显示。
这就是为什么宽度和高度存在2px差异的原因。我认为你可以通过修改png和删除第一行和最后一行/列来纠正它,或者用另一种方法绘制图像。也许使用其他格式(jpg?bmp?)可以完成这项工作。我不确定。
你可以做到这一点与计算,以适应基于设备屏幕的宽度和高度,所有的屏幕设备:
DisplayMetrics dm = new DisplayMetrics();
((Activity) context).getWindowManager().getDefaultDisplay().getMetrics(dm);
int width = dm.widthPixels;
int height = width * imageHeight/imageWidth;
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(width, height);