绘制正方形 - Android

时间:2014-09-18 09:54:04

标签: android canvas shapes

我正试图在android中使用canvas绘制一个简单的方块。画布遍布整个画面。

我的代码是 -

canvas.drawRect(200, 200, 700, 700, paint);

(这是测试的硬编码)

但结果看起来不像正方形(高度似乎大于宽度)。

我的逻辑错了吗?

以下是结果的屏幕截图。

enter image description here

谢谢!

1 个答案:

答案 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高。