我正试图在android中使用canvas绘制一个简单的方块。画布遍布整个画面。
我的代码是 -
canvas.drawRect(200, 200, 700, 700, paint);
(这是测试的硬编码)
但结果看起来不像正方形(高度似乎大于宽度)。
我的逻辑错了吗?
以下是结果的屏幕截图。
谢谢!
答案 0 :(得分:2)
您是否在水平和垂直方向上使用具有不同dpi的设备?如果是这样,你需要考虑这个差异才能得到完美的正方形。
您可以使用DisplayMetrics(http://developer.android.com/reference/android/util/DisplayMetrics.html)字段“xdpi”和“ydpi”获取两个方向的dpi。然后,您应该能够使用宽度“X”和高度(“X”*(ydpi / xdpi))创建一个完美的正方形。
示例:对于每边100px的正方形,水平(xdpi)和垂直100dpi(ydpi)200dpi,您需要绘制100px宽的矩形和(100 *(100 /) 200))= 50px高。