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

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

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

我的问题是...是否有其他方法可以解决此问题?

最佳答案

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

关于Android 从右到左绘制一个矩形 (rtl),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30052102/

相关文章:

android - 将 SQLite 数据库导出到 android 中的 csv 文件

android - Groups.rotation 有问题吗?

java - 在 Canvas 上缩放后路径上的抗锯齿

delphi - 为什么带有 pmXOR 笔的 TCanvas.Rectangle() 只能工作 "sometimes"?

android - 绘制的笔划矩形中的线宽不均匀

java - 创建包含另一个 Jar 文件的 Jar 文件

android - 如何在 Android L 上选择图像或视频?

java - 路径上的文本从 4.1.2 到 4.0.3 不起作用

Android - 使用 Flood-Fill 时 Canvas 黑色

java - 在java上分层绘画?