当前位置: 首页 > news >正文

榆林市网站建设新房装修效果图大全2022新款

榆林市网站建设,新房装修效果图大全2022新款,网站建网站建站专业公司,盐城网站优化刷抖音的时候,无意间刷到 心形函数的动画,觉得很有意思, 就简单的用Android的方式实现了一下.心形函数公式公式 :心形公式X的取值范围#xff1a;[-1.81,1.81]#xff0c;该取值范围是保证正弦函数有效取值范围。我们可以通过参数 a 的取值, 来形成不同的心形轮廓, 进而形成动…刷抖音的时候,无意间刷到 心形函数的动画,觉得很有意思, 就简单的用Android的方式实现了一下.心形函数公式公式 :心形公式X的取值范围[-1.81,1.81]该取值范围是保证正弦函数有效取值范围。我们可以通过参数 a 的取值, 来形成不同的心形轮廓, 进而形成动画效果.有了以上的认识,我们就是可开始编写Android代码了.Android实现代码使用 Kotlin来编写自定义View.个人觉得 只有心还不够, 动画结束需要逐渐显示文字,来达到表白的效果.先看动画效果:heart.gif然后贴上代码实现:class HeartView(context: Context, attrs: AttributeSet) : BaseView(context, attrs),ValueAnimator.AnimatorUpdateListener, Animator.AnimatorListener {var text Hello Androidprivate val animator ValueAnimator.ofInt(3_000)private val path Path()private var heartDrawing falseprivate var heart 0.1fprivate var pct 0finit {paint.strokeWidth 4 * dppaint.textSize 30 * dppaint.textAlign Paint.Align.CENTERanimator.interpolator LinearInterpolator()animator.addUpdateListener(this)animator.addListener(this)}fun startHeart() {heartDrawing trueanimator.cancel()animator.duration 3_000animator.start()}override fun onDraw(canvas: Canvas) {path.reset()paint.color Color.REDpaint.style Paint.Style.STROKEval padding 20val halfWidth width / 2 - paddingval halfHeight height / 2// 根据X坐标,计算出Y坐标, 将其映射到屏幕坐标后,用path连接for (index in 0..(width - padding * 2)) {val x (index - halfWidth) * 1.81 / halfWidthval y -getHeartY(x, heart) * height / 6 halfHeightif (index 0) {path.moveTo(index.toFloat() padding, y.toFloat())} else {path.lineTo(index.toFloat() padding, y.toFloat())}}canvas.drawPath(path, paint)// 结束后写文字if (!heartDrawing) {val textWidth paint.measureText(text)val left width / 2f - textWidth / 2fval top height * 0.4f - 0.9f * paint.textSizecanvas.clipRect(left, top, left textWidth * pct, top 1.2f * paint.textSize)paint.color Color.WHITEpaint.style Paint.Style.FILLcanvas.drawText(text, width / 2f, height * 0.4f, paint)}}private fun getHeartY(x: Double, a: Float): Double {return Math.pow(x * x, 1.0 / 3) 0.9 * Math.sqrt(3.3 - x * x) * Math.sin(a * Math.PI * x)}override fun onAnimationUpdate(animation: ValueAnimator) {val value animation.animatedValue as Intif (value 0) returnif (heartDrawing) heart value * 0.01felse {pct value / 3000f}invalidate()}override fun onDetachedFromWindow() {animator.cancel()animator.removeAllUpdateListeners()animator.removeAllListeners()super.onDetachedFromWindow()}override fun onAnimationEnd(animation: Animator?) {if (heartDrawing) {heartDrawing falseanimation?.duration 3_000animation?.start()}}override fun onAnimationStart(animation: Animator?) {}override fun onAnimationRepeat(animation: Animator?) {}override fun onAnimationCancel(animation: Animator?) {}}这样就实现了, 是不是觉得很简单.
http://www.pierceye.com/news/720816/

相关文章:

  • 卫生系统网站的建设和维护uc浏览器官网
  • 曲靖网站制作一条龙深圳网站建设的特殊性
  • 网站建设技术课程设计儿童教育网站怎么做有趣
  • 建设银行网站网址网站推广在线
  • 服务器上网站建设用什么搭建个人网站
  • 网站设计排版怎么做wordpress添加媒体
  • 网站服务器镜像外协加工网最新订单
  • 做网站要准备的资料广州响应式网站
  • 徐州网站建设方案维护wordpress主页访客记录
  • 西安网站优化招聘网多个网站 备案吗
  • 宣威网站wordpress 园林模板
  • 宁夏政务大厅城乡建设厅口网站怎么用抓爬工具做网站
  • 电影网站怎么建设深圳企业营销型网站
  • 天津工程建设网官方网站wordpress 静态化插件
  • 洛阳公司青峰做的企业网站设计本app
  • 宁波网站建设设计高效的设计公司
  • c2c网站架构免费推广网站工具
  • 网站建设案例基本流程图咨询公司名字大全
  • 成功的电子商务网站设计律师推广网站排名
  • 东莞桥头网站建设合肥商城网站建设
  • 做网站的准备什么合肥制作网页设计
  • 医院门户网站建设规划柳州建设厅官方网站
  • 公司建网站怎么建做网站的公司都很小吗
  • 手机cms建站系统重庆怎么站seo
  • 益阳建设局网站网站 设计 趋势
  • 奉贤网站建设网站制作金融企业如何做好网络推广
  • 范湖网站建设团队建设银行激活网站
  • 旅游网站开发网站设计报告书邢台旅游景点大全排名 免费
  • 如何创建div做网站推荐佛山伦教网站设计
  • 建设电子商务网站前的市场分析网站后台ftp