最近在工作中遇到了一些问题,总结下来就是Android中Rect这个类造成的。不得不说,不知道Android SDK的开发人员是怎么想的, 这个类设计的太奇葩了。首先介绍一下Rect类:Rect类主要用于表示坐标系中的一块矩形区域,并可以对其做一些简单操作。这块矩形区域,需要用左上右下两个坐标点表示(left,top,right,bottom),你也可以获取一个Rect实例的Width和Height。就在这里,奇葩的事情来了,作为一个有一点经验的做图像或者矩阵运算或者编程的程序员来说,大家的共识是,如果一个矩阵是MxN的,也就是M行N列,那么行号是[0,M-1],列号是[0,N-1]。可是奇葩的Rect类并不是这样的!如果你这么声明一个Rect类:

Rect rect=new Rect(100,50,300,500);

那么右下角(300,500)其实是不在这个矩形里面的,但是左上角(100,50)在,也就是说,这个矩形实际表示的区域是:(100,50,299,499)。另外,Rect计算出的Height和Width倒是对的。所以,在此告诫各位程序员,在涉及Rect运算的时候,尽量不要使用它的右下角左边,即right和bottom。因为他们是错的。当然,在你调用android自己的函数时,是可以使用的,因为Android里面一直保持这么奇葩的思维。

最新文章

  1. HTML5 LocalStorage 本地存储
  2. IE11部分图片无法显示的兼容办法
  3. wireshark如何抓取别人电脑的数据包
  4. 用Jenkins配置自动化构建
  5. Nginx的session一致性问题
  6. ResourceString的用法
  7. Linux C语言遍历目录结构
  8. ceph之Placement Group
  9. 使用facebook和twitter进行分享经验总结
  10. 程序包org.junit不存在
  11. linux下64位汇编的系统调用(1)
  12. 联想扬天3900c电脑BIOS设置U盘启动图文教程
  13. 与vnpy相关的有用博客网址
  14. Excel遇到的坑lookup和vlookup的用法
  15. MYSQL分组合并函数
  16. Oracle12c 性能优化攻略:攻略1-1:创建具有最优性能的数据库
  17. Python开发【笔记】:从海量文件的目录中获取文件名--方法性能对比
  18. Use MusicBrainz in iOS(三)查询专辑的完整信息
  19. Java 8函数式接口functional interface的秘密
  20. python之模块copy,了解概念即可

热门文章

  1. 纯CSS3打造非常炫的加载动画
  2. Android 桌面Widget开发要点(时间日期Widget)
  3. PowerDesigner使用教程【转】
  4. Android中Intent具体解释(一)
  5. git操作:在CentOS7上面搭建GitLab服务器
  6. office2016选择性安装
  7. 微信小程序——页面之间传递值
  8. Qt学习 之 QWebView
  9. Dijkstra 算法,用于对有权图进行搜索,找出图中两点的最短距离
  10. 接口、抽象类、泛型、hashMap