(转)谈谈Android中的Rect类——奇葩的思维
2024-10-07 21:18:31
最近在工作中遇到了一些问题,总结下来就是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里面一直保持这么奇葩的思维。
转:http://www.cnblogs.com/hrlnw/archive/2013/07/14/3189755.html
最新文章
- 关于context:component-scan配置中use-default-filters参数的作用
- c#中实现多个接口出现同名同参的方法
- jq 换图片路径
- hdu 5190 Building Blocks
- mcd, lm, VS lx
- AFNetworking 新版本3.0的迁移
- Java设计模式(七)策略模式 模板模式
- ASP.NET WebForm路由模拟
- Qt5:Qt中一些函数功能介绍
- [置顶]
 基于FPGA的VGA简易显存设计&NIOS ii软核接入
- maven学习之1
- Java线程编程中isAlive()和join()的使用详解
- wkhtmltox实现网页转换成图片或pdf
- 一键git push脚本(python版)
- spring reference
- Mui中常见问题记录
- 【转】实习小记-python中可哈希对象是个啥?what is hashable object in python?
- eclipse配置servlet错误
- KVM使用入门
- Android创建和删除桌面快捷方式