2017-04-10 176 views
0

作为该图像中看出: enter image description here的Android屏幕尺寸不一致

我有一个圆角矩形的1082 X 1796的大小,以及我用getWindowManager().getDefaultDisplay()得到并且如看到的打印屏幕的像素值左下方的圆圈。但是,当我绘制此位图时,会发生这种情况: enter image description here

屏幕大小是否与getDefaultDisplay()方法不同?我该如何解决?

回答

0

我认为你的形状被系统视为9patch。它使用第一行和最后一行/列来知道如何调整图像大小以便一致地显示。

这就是为什么宽度和高度存在2px差异的原因。我认为你可以通过修改png和删除第一行和最后一行/列来纠正它,或者用另一种方法绘制图像。也许使用其他格式(jpg?bmp?)可以完成这项工作。我不确定。

0

你可以做到这一点与计算,以适应基于设备屏幕的宽度和高度,所有的屏幕设备:

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);