Android:绘制到画布,左下角的方式对应于(0,0)?

时间:2011-07-13 16:43:03

标签: android graphics android-canvas

我正在尝试编写一个我可以在Android中使用的图形类(我知道预先存在的图形类),但转换我的所有坐标都会很痛苦。是否有一种简单的方法可以让屏幕坐标从左下方开始?

4 个答案:

答案 0 :(得分:9)

不,我不知道如何将0,0移到左下方并获得您通常认为的“正常”坐标。

但是组合scale()translate()可能会达到同样的效果。

canvas.translate(0,canvas.getHeight());   // reset where 0,0 is located
canvas.scale(1,-1);    // invert

答案 1 :(得分:1)

您可以使用canvas.scale(1, -1)之类的内容翻转您的画布,然后将其翻译到正确的位置。

答案 2 :(得分:0)

您可以使用canvas.translate() http://developer.android.com/reference/android/graphics/Canvas.html#translate(float, float)将原点移动到您想要的位置。

答案 3 :(得分:0)

android画布的原点在左上方。您要将其翻译到右下角。为此,请从“画布”高度中减去y坐标。

float X1 = xStart;
float Y1 = canvas.getHeight() - yStart;  //canvas is a Canvas object
float X2 = xEnd;
float Y2 = canvas.getHeight() - yEnd;
canvas.drawLine(X1, Y1, X2, Y2, paint ); //paint is a Paint object

这应该使您的行从左下角开始。