谈谈Android中的Rect类——奇葩的思维
2024-10-20 12:29:30
最近在工作中遇到了一些问题,总结下来就是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里面一直保持这么奇葩的思维。
最新文章
- HTML5 LocalStorage 本地存储
- IE11部分图片无法显示的兼容办法
- wireshark如何抓取别人电脑的数据包
- 用Jenkins配置自动化构建
- Nginx的session一致性问题
- ResourceString的用法
- Linux C语言遍历目录结构
- ceph之Placement Group
- 使用facebook和twitter进行分享经验总结
- 程序包org.junit不存在
- linux下64位汇编的系统调用(1)
- 联想扬天3900c电脑BIOS设置U盘启动图文教程
- 与vnpy相关的有用博客网址
- Excel遇到的坑lookup和vlookup的用法
- MYSQL分组合并函数
- Oracle12c 性能优化攻略:攻略1-1:创建具有最优性能的数据库
- Python开发【笔记】:从海量文件的目录中获取文件名--方法性能对比
- Use MusicBrainz in iOS(三)查询专辑的完整信息
- Java 8函数式接口functional interface的秘密
- python之模块copy,了解概念即可