原文地址:Android 图形基础类Rect,扎实基础助腾飞_王亟亟的博客-CSDN博客

Rect

这是一个我们常用的一个“绘画相关的工具类”,常用语描述长方形/正方形,他只有4个属性

    public int left;public int top;public int right;public int bottom;

这4个属性描述着这一个“方块”,但是这有一个知识点需要理清楚,先看这张图

本Rect最左侧到屏幕的左侧的距离是 left 
本Rect最上面到屏幕上方的距离是 top 
本Rect最右侧到屏幕左侧的距离是 right 
本Rect最下面到屏幕上方的距离是 bottom

这四个属性不单单描述了这个 长方形4个点的坐标,间接的描述出这个长方形的尺寸

长 = bottom - top 
宽 = right - left

这部分的知识可以看:What does top, left, right and bottom mean in Android Rect object - Stack Overflow

构造函数

public Rect() { }public Rect(int left, int top, int right, int bottom) {this.left = left;this.top = top;this.right = right;this.bottom = bottom;}public Rect(Rect r) {if (r == null) {left = top = right = bottom = 0;} else {left = r.left;top = r.top;right = r.right;bottom = r.bottom;}}

3个构造函数都是围绕着初始化这4个属性来做的,无论是传过来一个新Rect对象,还是传入具体的尺寸。

常用的那些方法

获取“宽”

  public final int width() {return right - left;}

获取“高”

 public final int height() {return bottom - top;}

有效性的判断

因为left是最左侧,right比left还小不就不成形了么?
宽高同是如此

public final boolean isEmpty() {return left >= right || top >= bottom;}

全部置0操作

 public void setEmpty() {left = right = top = bottom = 0;}

设置参数方法,和构造函数的区别仅在于不会创建新对象

  public void set(int left, int top, int right, int bottom) {this.left = left;this.top = top;this.right = right;this.bottom = bottom;}

整体实现不是很复杂,就是为了形容描绘,实现一个 “长方形”的概念。

Android Rect介绍相关推荐

  1. android AsyncTask介绍(转)

    android AsyncTask介绍 AsyncTask和Handler对比 1 ) AsyncTask实现的原理,和适用的优缺点 AsyncTask,是android提供的轻量级的异步类,可以直接 ...

  2. android Rect类的使用

    今天,讲讲Android的Rect类的使用. public final class Rect extends Object implements Parcelable java.lang.Object ...

  3. Android类库介绍

    Android类库介绍 GPhone开发包Android SDK含了很多丰富的类库: android.util 涉及系统底层的辅助类库 android.os 提供了系统服务.消息传输.IPC管道 an ...

  4. 1.android体系结构介绍

    一.Android的介绍 android介绍见百度百科:Android的介绍,度娘把Android介绍的这么清楚,如果谷歌是Android的爹,那度娘就是娘了. 二.Android的架构图 andro ...

  5. 【转】Android bluetooth介绍(三): 蓝牙扫描(scan)设备分析

    原文网址:http://blog.csdn.net/xubin341719/article/details/38584469 关键词:蓝牙blueZ  A2DP.SINK.sink_connect.s ...

  6. 作业Android自我介绍

    ***Android自我介绍***

  7. Android HIDL 介绍学习之客户端调用

    应上一篇文章Android HIDL 介绍学习_Super Jang的博客-CSDN博客_安卓hidl读者的要求,本文更新客户端调用方法. hidl的客户端调用相比服务端的实现要简单很多,本次我们通过 ...

  8. Android开发介绍

    Android开发介绍 这个教程设计是帮助你学习基础的Android开发和快速搭建您的开发环境.这个是在我的Window 7上编写的,当然它也支持Linux(uBuntu).Mac OS其他支持And ...

  9. android 模拟器的使用(Android模拟器介绍及创建)

    做了这么久的android开发,一直想把在开发过程中积累的经验或问题总结一下,可是都没有时间,现在有一点点空闲,所以慢慢把我在android中遇到的问题整理一下写出来,供自己以后参考,也希望和大家一起 ...

  10. Android bluetooth介绍(一):基本概念及硬件接口

    关键词:蓝牙硬件接口 UART  PCM  blueZ  版本:基于android4.2之前版本 bluez 内核:linux/linux3.08 系统:android/android4.1.3.4 ...

最新文章

  1. Codeforces Round #563 (Div. 2)/CF1174
  2. 基于PyTorch,如何构建一个简单的神经网络
  3. 关于Java实现去除连续空格的延伸
  4. tomcat需要设置环境变量吗
  5. 【干货】Sketch+Keynote双剑合璧:5步快速制作移动动效
  6. python 服务端与c++客户端通讯_[原创]python socket 服务端 与 c++客户端通讯,发包内容加密,支持大文件,并发...
  7. wxPython控件学习之StaticText静态文本框
  8. Python——eventlet.greenpool
  9. Python菜鸟入门:day09数据结构
  10. 有没有网上python一对一-使用Python的Tornado框架实现一个一对一聊天的程序
  11. mysql innodb 幻读_MySQL InnoDB四个事务级别 与 脏读、不重复读、幻读
  12. Layui 数据表格table 重载reload 保留上次where条件的问题
  13. 点赋科技:网店的营销策略是什么?
  14. php域名绑定模块,ThinkPHP5.1 域名绑定模块
  15. [转载]历上最强的音乐播放器(jetAudio-8.0.5.320-Plus-VX
  16. 游戏开发经验之开源游戏盈利的十个有效途径
  17. FPS游戏外挂屡禁不止,如何破局?
  18. vue后端返回数据流 前端导出下载xls文件
  19. 在MOSS中开发和部署Infopath
  20. matlab编一个福利彩票电脑选号的程序,第14讲 计算机模拟_云南师范大学:数学建模与数学实验(费培之)_ppt_大学课件预览_高等教育资讯网...

热门文章

  1. plot 串口助手,DataScope软件的数据,导入matlab绘图。温度曲线
  2. 选课系统服务器,选课系统概要设计
  3. Go 开发关键技术指南 | 带着服务器编程金刚经走进 2020 年(内含超全知识大图)
  4. 网站克隆工具-httrack安装使用教程
  5. 巧用JMP公式,让新变量的生成更简单
  6. PHP时间戳和日期相互转换操作总结
  7. View的复用:viewHolder
  8. EverNote 极致的免费笔记资料管理软件 (数据网络同步、支持PC、Mac与手机多平台) 转自:http://www.iplaysoft.com/evernote.html
  9. 点滴记录笔记_持续更新
  10. sketchup的SKP格式转到导入supermap需要的GLTF格式