View 碰撞检测
来源:互联网 发布:网络兼职在校学生 编辑:程序博客网 时间:2024/04/30 15:22
/** * 计算重叠面积。如果返回大于0,表示view1与view2有碰撞。 * @param view1 * @param view2 * @return 重叠面积 */ public float overlayArea(View view1,View view2){ float area=0; if(view1!=null && view2!=null){ //view2-左上a,右上b,左下c,右下d //view1-左上e,右上f,左下g,右下h //重叠部分-左上w,右上x,左下y,右下z //view2 float width2=view2.getWidth(); float height2=view2.getHeight(); float ax=view2.getX(); float ay=view2.getY(); float bx=ax+width2;// float by=ay;// float cx=ax; float cy=ay+height2;// float dx=ax+width2;// float dy=ay+height2; //view1 float width1=view1.getWidth(); float height1=view1.getHeight(); float ex=view1.getX(); float ey=view1.getY(); float fx=ex+width1;// float fy=ey;// float gx=ex; float gy=ey+height1;// float hx=ex+width1;// float hy=ey+height1; if(bx<ex || fx<ax || cy<ey || gy<ay){ //没有重叠部分 }else{ //重叠部分 float wx=ax>ex?ax:ex; float wy=ay>ey?ay:ey; float xx=bx<fx?bx:fx;// float xy=by>fy?by:fy;// float yx=cx>gx?cx:gx; float yy=cy<gy?cy:gy;// float zx=dx<hx?dx:hx;// float zy=dy<hy?dy:hy; //计算重叠面积 float width=xx-wx; float height=yy-wy; area=width*height; } } return area; }
0 0
- View 碰撞检测
- 碰撞检测
- 碰撞检测
- 碰撞检测
- 碰撞检测
- 碰撞检测
- 碰撞检测
- 碰撞检测
- 碰撞检测
- 碰撞检测
- 碰撞检测
- 碰撞检测
- 碰撞检测
- 碰撞检测
- 碰撞检测
- 碰撞检测
- 碰撞检测
- 碰撞检测
- 数据算法之冒泡排序(bubbleSort)的Java实现
- [RK3288][Android6.0] 调试笔记 --- ECHI上的USB Camera无法打开
- Tablayout的简单使用
- Ubuntu 16.04.1 LTS部署django 1.10.4到Apache_2.4.18
- java异步写日志到文件中
- View 碰撞检测
- JSTree手动管理AJAX请求
- .xml获取菜单数据,绑定Menu控件,XmlDataSource控件
- 【Unity 3D学习】键盘控制人物在场景中移动
- 通过java代码使用zookeeper
- FusionCharts绘图插件(一)——初识fusioncharts
- jQuery 万金油 ajax提交表单数据
- 文件上传
- 算法训练 暗恋