从绘制圆弧思考定位
来源:互联网 发布:java界面美化 编辑:程序博客网 时间:2024/05/18 11:49
如下图所示,我想在屏幕的在150*150的小矩形中间画一个画弧。开始的时候我会去考虑
150*150的居中显示的圆心怎么拿到啊?是不是要根据手机尺寸来计算?半径也要自己去指
定。按这个计算来说,圆心坐标为(160,240),半径为75,但我见到的代码让我对这个想法
产生的怀疑。
下面的自定义View代码中getWidth()=225,getHeight=225,我开始很奇怪,getWidth和
getHeight()得到的不是手机的尺寸吗?怎么会是这么个奇怪的值啊?宽高一样的!!
后来我猜想,因为在xml配置文件中我设置的View为150*150dip,(对于HVGA)转化成像素
就是225pix。也就是150dip=225pix-->1dip=1.5pix。
接着又有奇怪的事情:
RadialGradient rg = new RadialGradient( x, y, y, Color.argb(255, 255, 0,
0),Color.argb(255, 0, 255, 0), TileMode.CLAMP);//渐变
上面代码表明x = 1/2getWidth() == 112.5,y=1/2getHeigth()=112.5就是我们的圆心。
这与我们当时算的(160,240)是圆心不相符啊。另外,半径竟然和x,y相等。也就是说只
有这包含这个圆的矩形是从(0,0)-->(a,a)的才有可能圆心坐标值和半径值相等。
为什么这么奇怪的设坐标设置却能画出我要的东西呢?我的理解是,对于自定义View来
说,如果在xml中指定了它的尺寸和位置。那么在View内部它的坐标轴不再是整个手机屏幕
了,而是给指定的那块区域。比如上面的例子:
给自定义View在手机的某个区域分配了一个150dip*150dip(225pix*225pix)的区域,然后
在自定义View内部,这个区域就是它的全部。getWidth就是225,里面的内切圆圆心也就为
(getWidth()/2,getHeight()/2),内切圆的半径也就为getWidth()或getHeight()。这样的
相对坐标使我们定位更容易一些。
- 从绘制圆弧思考定位
- Quartz2d从易到难全解析---绘制圆弧、圆、图片和文字
- j2me-绘制圆弧
- CANVAS绘制圆弧
- drawArc绘制圆弧
- drawArc方法:绘制圆弧
- OpenGL绘制圆弧/圆/饼图
- svg绘制圆弧(一)
- svg绘制圆弧(二)
- canvas绘制文本 圆弧 详解
- 3.canvas:圆弧的绘制
- Bresenham圆弧绘制算法OpenGL版
- 对GDI+绘制圆弧接口的理解
- AutoCAD.NET创建对象之绘制圆弧
- 8.2.12 drawArc方法:绘制圆弧
- 几何画板中怎样绘制圆弧
- 角度离散法绘制圆弧 | 椭圆
- Android自定义View绘制彩色圆弧
- 利用录音AudioRecord实现吹一吹效果
- 排序算法总结
- Asp.net Web Api源码调试
- LightOJ 1058 & Poj 1971 Parallelogram Counting
- Windows 就不能改善一下易用性么
- 从绘制圆弧思考定位
- Safengine 试用次数限制 & 试用时间限制
- 非递归遍历二叉树
- Static Handler
- 工厂方法
- Javascript词法作用域
- Struts2的快速入门案例
- Java socket通信基本原理介绍(一)
- apache tomcat 必须要加 WebRoot 才能访问的解决方法