Android从右到左绘制一个矩形(rtl)

时间:2015-05-05 11:46:49

标签: android android-canvas draw rect

我在android中构建绘图应用程序,我在绘制矩形时发现了一个问题。应根据语法

绘制矩形
new Rect(left, top, right, bottom)

现在我的逻辑起作用的是起点(startX,startY)和结束点(endX,endY)并使用以下方式绘制:

new Rect(startX,startY, endX, endY);

假设用户从左上角到右下角绘图。

问题

现在,当用户尝试从右到左或从下到上绘制矩形时,会出现问题。处理第一个问题(从右到左): 这意味着startX现在指向右侧(而不是左侧)。因此代码现在将尝试使用此语法绘制:

new Rect(right, top, left, bottom)

无法绘制矩形。 换句话说,startX大于endX,它在绘制矩形时不应该是。

解决

所以我在绘制矩形之前使用了以下代码进行检查:

int smallX,largeX,smallY,largeY;
if(startX>endX){    smallX=endX;    largeX=startX;  }else{  smallX=startX;  largeX=endX;    }
if(startY>endY){    smallY=endY;    largeY=startY;  }else{  smallY=startY;  largeY=endY;    }
rect = new Rect(smallX, smallY,largeX,largeY);

这将确保第一个参数始终指向左侧,其他参数也很好。

我的问题在这里......还有另外一种解决方法吗?

1 个答案:

答案 0 :(得分:0)

我不这么认为,因为Canvas是由坐标设置的,坐标(0,0)是左上角并且向右下方增长,渲染器遵循该逻辑,从左上角开始一行一行至底部。