Android怎么自定义view贝塞尔曲线(android,view,开发技术)

时间:2024-05-07 00:43:37 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

贝塞尔曲线

以一个简单的贝塞尔曲线为例,二阶曲线原理

Android怎么自定义view贝塞尔曲线

贝塞尔曲线很多功能都会用到,比如小火箭发射,再比如淘宝的购物车功能

所幸的是Android有封装好的贝塞尔曲线,我们直接拿过来用就可以了:

//二阶贝赛尔publicvoidquadTo(floatx1,floaty1,floatx2,floaty2)publicvoidrQuadTo(floatdx1,floatdy1,floatdx2,floatdy2)//三阶贝赛尔publicvoidcubicTo(floatx1,floaty1,floatx2,floaty2,floatx3,floaty3)publicvoidrCubicTo(floatx1,floaty1,floatx2,floaty2,floatx3,floaty3)

自定义view代码如下

publicclassMyViewextendsView{privatePointcontrolPoint=newPoint(200,200);publicMyView(Contextcontext){super(context);}publicMyView(Contextcontext,@NullableAttributeSetattrs){super(context,attrs);}publicMyView(Contextcontext,@NullableAttributeSetattrs,intdefStyleAttr){super(context,attrs,defStyleAttr);}@OverrideprotectedvoidonDraw(Canvascanvas){super.onDraw(canvas);Paintpaint=newPaint();//画笔设置描边paint.setStyle(Paint.Style.STROKE);//颜色paint.setColor(Color.BLACK);//描边宽度paint.setStrokeWidth(10);//路径Pathpath=newPath();//moveTo不会进行绘制,只用于移动移动画笔。path.moveTo(100,500);//绘制贝塞尔曲线,controlPoint.x,controlPoint.y控制点和700,500终点坐标path.quadTo(controlPoint.x,controlPoint.y,700,500);//绘制路径canvas.drawPath(path,paint);//绘制辅助点canvas.drawPoint(controlPoint.x,controlPoint.y,paint);}@OverridepublicbooleanonTouchEvent(MotionEventevent){switch(event.getAction()){caseMotionEvent.ACTION_MOVE:controlPoint.x=(int)event.getX();controlPoint.y=(int)event.getY();//invalidate();重绘刷新invalidate();break;}returntrue;}}

Android怎么自定义view贝塞尔曲线

 </div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:Android怎么自定义view贝塞尔曲线的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:C语言数据结构之单链表怎么实现下一篇:

18 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18