android Draw Rect 坐标图示以及DrawOval的椭圆坐标说明

Java 代码  

1.   //绘制矩形   

2.   canvas.drawRect(new  Rect(150, 75, 260, 120), mPaint);  

3.   //设置裁剪区域   

4.   canvas.clipRect(10, 10, 280, 260);  


我对它们的参数有些疑问   我不知道 android  它是怎么在一个 Canvas 对象上   绘制出一个矩形? newRect(150,75,260,120) 里边这些参数   的数字指明了什么那些值? android  绘制一个矩形以哪里为坐标原点? --- 》我现在就告诉大家   是以屏幕的左上角。     我们现在   就带着疑问来   看看 android 到底怎么在画布上   绘制一个矩形
先说这句

Java 代码  

1.   new  Rect(150, 75, 260, 120)  

   这个构造方法需要四个参数这四个参数   指明了什么位置   ?我们就来解释怎么画   这个   矩形  
这四个   参数   分别代表的意思是: left   top   right   bottom   上下左右呗。啊,不是           下。   下面给大家解释   
left    矩形左边的 X 坐标   150        ----> 图片中的 A  
top:     矩形顶部的 Y 坐标    75         ----> 图片中的 B  
right :   矩形右边的 X 坐标    260       -----> 图片中的 C  
bottom   矩形底部的 Y 坐标  120     -------> 图片中的 D  

说白了就是左上角的坐标是(150,75),右下角的坐标是(260,120),这样就好理解了


不知道大家到这里   能不能马上就能想象出   这个矩形应该在屏幕的什么位置   我是不能   就在纸上画了画   下边来张图    我模拟器的   屏幕是 320*480  我也是   画一个大概的位置   主要是明白   那几个点在什么地方。   在图中   我分别以 A B  C D  代表   那四个点   图片中红色的部分就是我们要画的矩形。  

android Draw Rect 坐标图示以及DrawOval的椭圆坐标说明_第1张图片


canvas.clipRect(10, 10, 280, 260)  这个裁剪画布的方法   的参数含义和   我们 newRect(150, 75, 260, 120)  的参数含义是一样的。
      这里向大家说明一个问题   接着说吧   还是上边这个矩形

Java 代码  

1.   new  Rect(150,75,260,120)  

我们应该怎么把它放到屏幕的右下角,就是和屏幕的右侧和下侧都挨上     坐标是多少?我的屏幕是 320*480   按道理这个矩形的坐标应该是 (210,435,320,480)  这其实   应该是正确的结果   ,但是如果把坐标改成这个   你运行一下   其实   这个矩形就消失在了屏幕上。   刚开始我困惑至极   也不知道怎么回事,后来发现   我们屏幕的   状态栏     标题栏   一共占了 50   正确的坐标应该是   210,385,320,430);  我们还是来看张图   那个绿色的矩形   就是我们想要的效果。  

android Draw Rect 坐标图示以及DrawOval的椭圆坐标说明_第2张图片

 
这个时候它就在屏幕的右下角。   这里还是有疑问,就算   状态栏     标题栏   占去了 50  但是矩形最下面那条线   的位置应该还是 480     这是没错的啊   怎么会变成 430    很好   我也不知道是怎么回事   我怀疑   是坐标原点   下移   坐标原点     状态栏和标题栏的底线。   我这里只是猜测,如果有高手知道   还请告知。谢谢。     对了   这里有一个不错的例子   介绍   怎么获取   状态栏     标题栏的   高度 http://blog.csdn.net/pilou5400/archive/2010/11/18/6018422.aspx   大家   可以去看看。


=======================================================================================

其中椭圆的坐标,如下:

canvas.drawOval(new RectF(15,15,140,70),paint);

其实跟矩形的坐标是一样的,这些坐标定义了一个矩形,然后只是在这个矩形中画了一个椭圆而已,如下:

你可能感兴趣的:(java,c,android,2010)