谈谈Android中的Rect类——奇葩的思维
最近在工作中遇到了一些问题,总结下来就是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里面一直保持这么奇葩的思维。
谈谈Android中的Rect类——奇葩的思维的更多相关文章
- (转)谈谈Android中的Rect类——奇葩的思维
最近在工作中遇到了一些问题,总结下来就是Android中Rect这个类造成的.不得不说,不知道Android SDK的开发人员是怎么想的, 这个类设计的太奇葩了.首先介绍一下Rect类:Rect类主要 ...
- android中的Cursor类
转载: 使用过 SQLite 数据库的童鞋对 Cursor 应该不陌生,如果你是搞.net 开发你大可以把Cursor理解成 Ado.net 中的数据集合相当于dataReader.今天特地将它单独拿 ...
- Android(java)学习笔记120:Android中的Application类用法
1.简介 如果想在整个应用中使用全局变量,在java中一般是使用静态变量,public类型:而在android中如果使用这样的全局变量就不符合Android的框架架构,但是可以使用一种更优雅的方式就是 ...
- [ 原创 ]学习笔记-Android 中关于Cursor类的介绍
此博文转载自:http://www.cnblogs.com/TerryBlog/archive/2010/07/05/1771459.html 主讲Cursor的用法 使用过 SQLite 数据库的童 ...
- Android中的基类—抽取出来公共的方法
在Android中,一般来说一个应用会存在几十个页面,并且一个应用一般也会使用一个特定的主题,其中的页面的风格也是一致的,并且页面中的动画效果.页面的切换效果等也应该保持同样的风格,那么就需要一个基类 ...
- (转)Android中的基类—抽取出来公共的方法
在Android中,一般来说一个应用会存在几十个页面,并且一个应用一般也会使用一个特定的主题,其中的页面的风格也是一致的,并且页面中的动画效果.页面的切换效果等也应该保持同样的风格,那么就需要一个基类 ...
- Android(java)学习笔记61:Android中的 Application类用法
1. 简介 如果想在整个应用中使用全局变量,在java中一般是使用静态变量,public类型:而在android中如果使用这样的全局变量就不符合Android的框架架构,但是可以使用一种更优雅的方式就 ...
- Android中关于cursor类介绍
使用过 SQLite 数据库的童鞋对 Cursor 应该不陌生,如果你是搞.net 开发你大可以把Cursor理解成 Ado.net 中的数据集合相当于dataReader.今天特地将它单独拿出来谈, ...
- Android中利用画图类和线程画出闪烁的心形
本文讲解主要涉及的知识点: 1.线程控制 2.画图类 3.心形函数 大家先看图片: <ig ...
随机推荐
- 在python3.3后urllib2已经不能再用,只能用urllib.request来代替
版权声明:本文为博主原创文章,未经博主允许不得转载. 在python3.3后urllib2已经不能再用,只能用urllib.request来代替 response=urllib2.urlopen(' ...
- loadrunner文本检查点
将脚本切换回代码界面, 在光标闪烁的上行,添加如下的代码: 添加的代码根据你检查的方式不同而不同, 你可以选择其中之一即可. 代码一: web_reg_find("Text=Payment ...
- 【转】ExtJS获取父子、兄弟容器元素方法
原文地址:http://www.cnblogs.com/linxiong945/p/3961732.html 1.当前对象的父对象(上级对象) this.ownerCt: 2.当前对象的下一个相邻的对 ...
- 地铁盾构管片姿态测量软件(Excel)
记得11年刚开始从事盾构测量的时候,只知道搬站(倒站),测导线,还有就是测量管片.觉得最麻烦的就是在每个管片上面放个水平长尺,用全站仪测出他的水平位置和高程,但当时是本子记录每个数据,回去在敲到电脑上 ...
- 【UE4】VR模式下全屏(去掉两侧的黑边)
1.下载UE4源码,用Visual Studio打开源码找到指定文件,修改代码后重新编译得到一个新的UE4编辑器 2.将游戏项目在新的UE4中打开,重新编译. 参考: https://caedmom. ...
- Java 原码 反码 补码
本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希 ...
- ubuntu14.04 3D桌面效果制作
参考:http://www.360doc.com/content/14/0919/22/11681374_410808557.shtml
- mysql深坑之--group_concat有长度限制!!!!默认1024
在mysql中,有个函数叫“group_concat”,平常使用可能发现不了问题,在处理大数据的时候,会发现内容被截取了,其实MYSQL内部对这个是有设置的,默认不设置的长度是1024,如果我们需要更 ...
- Patterns for Asynchronous MVVM Applications: Commands
Stephen Cleary Download the Code Sample This is the second article in a series on combining async an ...
- Win7系统中MySQL服务无法启动的解决方法
Win7系统中提示:本地无法启动MySQL服务,报的错误:1067,进程意外终止的解决方法.在本地计算机无法启动MYSQL服务错误1067进程意外终止.这种情况一般是my.ini文件配置出错了1.首先 ...