Rect类的使用结果
来源:互联网 发布:linux http server 编辑:程序博客网 时间:2024/06/11 07:53
import android.content.Context;import android.graphics.Canvas;import android.graphics.Paint;import android.graphics.Rect;import android.util.Log;import android.view.View;public class MyRect extends View { Paint paint = new Paint(); Rect r1 ; Rect r2 ; Rect r3 ; public MyRect(Context context) { super(context); init(); } private void init() { r1 = new Rect(10, 10, 100, 100); r2 = new Rect(110, 110, 180, 180); //判断是否相等,重写了equals Log.i("equals", r1.equals(r2) + "");//equals﹕ false //重写了toString Log.i("toString", r1.toString());//toString﹕ Rect(10, 10, 100, 100) Log.i("toShortString", r1.toShortString());//toShortString﹕ [10,10][100,100] Log.i("flattenToString", r1.flattenToString());//flattenToString﹕ 10 10 100 100 r3 = Rect.unflattenFromString("180 180 280 280"); Log.i("isEmpty", r1.isEmpty() + "");//isEmpty﹕ false Log.i("r1-width", r1.width() + "");//r1-width﹕ 90 Log.i("r1-height", r1.height() + "");//r1-height﹕ 90 // 中心X坐标 Log.i("r1_centerX", r1.centerX() + "");//r1_centerX﹕ 55 //中心Y坐标 Log.i("r1_centerY", r1.centerY() + "");///r1_centerY﹕ 55 //精确的中心X坐标 Log.i("r1_exactCenterX", r1.exactCenterX() + "");//r1_exactCenterX﹕ 55.0 //精确的中心Y坐标 Log.i("r1_exacctCenterY", r1.exactCenterY() + "");//r1_exactCenterY﹕ 55.0 //重置为空 r2.setEmpty(); //设置坐标 r2.set(40, 40, 100, 100); printCoordinates(r2, "a"); //left﹕ 40 //top﹕ 40 //right﹕ 100 //bottom﹕ 100 //使用已有的Rect进行设置 r2.set(r1); printCoordinates(r2, "b"); //left﹕ 10 //top﹕ 10 //right﹕ 100 //bottom﹕ 100 //偏移 r1.offset(20, 20); printCoordinates(r1, "c"); //left﹕ 30 //top﹕ 30 //right﹕ 120 //bottom﹕ 120 //偏移到 r1.offsetTo(40, 40); printCoordinates(r1, "d"); //left:40 //top﹕ 40 //right﹕ 130 //bottom﹕ 130 r1.inset(20, 30); printCoordinates(r1, "e"); //left﹕ 60 //top﹕ 70 //right﹕ 110 //bottom﹕ 100 //判断包含性 Log.e("contains1", r1.contains(50, 50) + "");// contains1﹕ false Log.e("contains2", r2.contains(20, 20, 80, 80) + "");//contains2﹕true Log.e("contains3", r3.contains(r2) + "");//contains3﹕ false //判断相交 Log.e("intersect1", r1.intersect(50, 50, 60, 80) + "");//intersect1﹕false Log.e("intersect2", r1.intersect(r2) + "");//intersect2﹕ true Log.e("intersects3", r1.intersects(50, 50, 60, 80) + "");//intersects3﹕ false Log.e("intersects4", Rect.intersects(r2, r3) + "");//intersects4﹕ false //取相交部分 Log.e("setIntersect", r1.setIntersect(r2, r3) + "");//setIntersect﹕ false printCoordinates(r1, "r1a"); //left﹕ 60r1a //top﹕ 70r1a //right﹕ 100r1a //bottom﹕ 100r1a //取并 r1.union(r2); printCoordinates(r1, "r1b"); //left﹕ 10r1b //top﹕ 10r1b //right﹕ 100r1b //bottom﹕ 100r1b r1.union(8, 7); printCoordinates(r1, "r1c"); //left﹕ 8r1c //top﹕ 7r1c //right﹕ 100r1c //bottom﹕ 100r1c r1.union(40, 20, 120, 130); printCoordinates(r1, "r1d"); //left﹕ 8r1d //top﹕ 7r1d //right﹕ 120r1d //bottom﹕ 130r1d //交换 r1.sort(); printCoordinates(r1, "r1e"); //left﹕ 8r1e //top﹕ 7r1e //right﹕ 120r1e //bottom﹕ 130r1e } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); canvas.drawRect(r1, paint); canvas.drawRect(r2, paint); canvas.drawRect(r3, paint); } /**打印坐标*/ private void printCoordinates(Rect rect, String str) { Log.i("left", rect.left + str); Log.i("top", rect.top + str); Log.i("right", rect.right + str); Log.i("bottom", rect.bottom + str); }}
Rect rect=
new
Rect(
100
,
50
,
300
,
500
);
那么右下角(300,500)其实是不在这个矩形里面的,但是左上角(100,50)在,也就是说,这个矩形实际表示的区域是:(100,50,299,499)。另外,Rect计算出的Height和Width倒是对的。所以,在此告诫各位程序员,在涉及Rect运算的时候,尽量不要使用它的右下角左边,即right和bottom。因为他们是错的。
0 0
- Rect类的使用结果
- android Rect类的使用
- android中Rect类的使用
- android Rect的使用
- android Rect的使用
- android Rect的使用
- android Rect的使用
- GetWindowRect(hwnd,&rect); 的结果错误,得到的rect结果是-38000 -38000 -37920 -37920
- RECT类
- Rect类
- Rect类
- rect类
- Opencv的Rect类-矩形类
- android.graphics.Rect类的详解
- OpenCV的Rect矩形类用法
- 利用OpenCV创建自己的Rect类
- OpenCV的Rect矩形类用法
- android.graphics.Rect类的详解
- 大数据大家学
- UISegmentedControl分段视图
- opencv学习笔记2
- caffe调用已生成的模型和测试
- LESS CSS 框架简介
- Rect类的使用结果
- (转载)富人孩子和穷人孩子,差的真不仅仅是钱
- Swift(十四、构造过程(1))
- 将社交网络集成到 BPM,第 1 部分: 收集 Twitter 数据
- PostgreSQL新手入门
- 字符串数组集合OC简单介绍
- 把钱投资自己的头脑上(二)
- c 语言中的!和~
- Python 定时执行线程 执行任务