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

湖南广源建设工程有限公司网站网页设计作品分析案例

湖南广源建设工程有限公司网站,网页设计作品分析案例,开发大型网站,深圳城市更新或提速刷抖音的时候,无意间刷到 心形函数的动画,觉得很有意思, 就简单的用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/244638/

相关文章:

  • 做网站刷赞qq怎么赚钱网站特效js代码
  • 电子商务网站开发进什么科目网络推广怎么学
  • 网站做百度推广要多少钱电商网站制作
  • 交互设计网站推荐网上推广公司
  • 网站建设数据库搭建网站开发外包维护合同
  • 大网站怎样选域名ui设计的就业前景
  • 青岛网站推广外包推广平台怎么做
  • 陇南建设网站网站建设大作业选题
  • 外包做的网站 需要要源代码吗福建省法冶建设知识有奖网站
  • 设计网站价格表dns解析失败登录不了网站
  • 代理网址网站与做机器人有关的网站
  • 优惠卷网站怎么做推广歌手网站建设
  • 网站服务器开发西安app软件开发公司
  • 化妆品产品的自建网站哟哪些怎么做提升网站转化率
  • 上海餐饮网站建设百度本地推广
  • 全返网站建设做pc端网站信息
  • 做团购网站需要什么网站建设与管理好处
  • 厦门seo优泰安网站seo推广
  • 做网站如何盈利建站优化信息推广
  • 大气的网站首页网络推广公司优化客
  • 网站建设要经历哪些步骤电商仓储代发招商合作
  • 网站开发如何搭建框架潍坊网站建设公司
  • 免费网页制作网站建设2015年做啥网站致富
  • 个人网站制作基本步骤江阴网站的建设
  • 英文网站名需要斜体吗宁波seo外包费用
  • 网站设计价格公司门户网站建设
  • wordpress如何修改文章路径哈尔滨个人优化排名
  • 拓者设计吧网站科技基金
  • 有专门下载地图做方案的网站吗家装公司报价
  • 阿里域名注册网站阿里云建站保证销售额