先上一张效果图吧:

说说这个东西的来源吧。今天突然想到笛卡尔心形图,想去看看能不能画个心出来,可是看到一篇不错的文章,那篇文章罗列了非常多关于心形的函数方程,这可把我高兴坏了,于是我选取了一个比較好看的“桃心”做了今天的效果。

以下贴代码:

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Paint.Style;
import android.graphics.Path;
import android.util.AttributeSet;
import android.view.View;public class LoveView extends View {private Paint paint;private float rate = 5; // 半径变化率private AnimThread at; // 改变rate的线程private Path path; // 路径public LoveView(Context context) {super(context);init();}public LoveView(Context context, AttributeSet attrs) {super(context, attrs);init();}private void init() {at = new AnimThread();// 初始化画笔paint = new Paint();paint.setAntiAlias(true);paint.setColor(Color.RED);paint.setStyle(Style.FILL);paint.setStrokeWidth(2);// 创建一个路径path = new Path();at.start();}@Overrideprotected void onDraw(Canvas canvas) {super.onDraw(canvas);// 重置画板path.reset();// 得到屏幕的长宽的一半int px = getMeasuredWidth() / 2;int py = getMeasuredHeight() / 2;// 路径的起始点path.moveTo(px, py - 5 * rate);// 依据心形函数绘图for (double i = 0; i <= 2 * Math.PI; i += 0.001) {float x = (float) (16 * Math.sin(i) * Math.sin(i) * Math.sin(i));float y = (float) (13 * Math.cos(i) - 5 * Math.cos(2 * i) - 2 * Math.cos(3 * i) - Math.cos(4 * i));x *= rate;y *= rate;x = px - x;y = py - y;path.lineTo(x, y);}canvas.drawPath(path, paint);}private class AnimThread extends Thread {public void run() {while (true) {rate += 0.05;if (rate > 20) { // 我的手机大于20后就非常大了,为了不超过屏幕rate = 5;}try {Thread.sleep(10);} catch (InterruptedException e) {e.printStackTrace();}// 刷新画布postInvalidate();}}};}

凝视非常清楚了,有些參数rate是依照我手机的实际情况来的。所以我给的值是固定的。还有假设不过依照那篇文章中的函数来的。画出来的心形是反的。所以里面有代码变化过了,这样出来的图就是正的。

事实上有时候认为这东西没什么技术含量(本来不好意思发的),哈哈,只是认为好玩,还是忍不住发出来了。

转载于:https://www.cnblogs.com/claireyuancy/p/6894745.html

android制作闪动的红心相关推荐

  1. 初识Android 制作一个简单的记账本

    初识Android 制作一个简单的记账本 主要功能 实现一个记账本页面 可以添加数据并更新到页面中 主要步骤 运行截图 主页面 点击红色按钮弹出添加页面 完成后自动更新到目录下 主要功能 实现一个记账 ...

  2. [转]android 制作.9.png图片 解决图形变形问题

    [转]android 制作.9.png图片 2012-8-10阅读1164 评论1 本文转自:http://xiaoming123123.iteye.com/blog/1489253 "点九 ...

  3. 如何制作闪动的gif?一键教你gif闪图在线制作

    如何制作闪动效果的gif动图?当我们走在路上看到那种带有爆闪效果的led灯牌时,想要把这种效果运用到gif动图中去的时候,应该如何制作呢?很简单,使用[GIF中文网]的gif图片制作(https:// ...

  4. Android 制作一款短视频app软件可在线观看(视频实时更新)

    Android 制作一款短视频app软件可在线观看(视频实时更新) 第一步:完成界面的设计 界面布局采用LinearLayout,添加TextView控件显示标题,添加4个Button按钮可切换不同的 ...

  5. Android制作简易的调色器,并实现复制色值的功能

    Android制作简易的调色器,并实现复制色值的功能 我们上课老师让做的作业,参照别人的代码,可能不够完善,请大家见谅- 主要用到SeekBar控件 先展示效果图吧 点击复制的Button,弹出提示信 ...

  6. Android 轮子之点赞红心动画

    Android 轮子之点赞红心动画 画❤ 初始化5个红心 红心随机颜色以及偏移 添加动画 废话不多说,直接上效果图: 效果图(1.1): 老套路先来分析: 屏幕上有3个按钮,模仿点赞,关注与转发,点击 ...

  7. Android制作天气预报 —— 图片展示

    主要功能为天气查询.日历查看.语录显示,各个界面间的转换可以通过添加的按键或者设备自带返回键实现.系统运行调试结果如下: 动态视频链接:Android制作天气预报(展示)-CSDN直播 1.默认城市( ...

  8. Android ----制作自己的Vendor

    Android源代码使用一个可定制的编译系统来生成 特定的,针对自己硬件平台的Android系统,比方不使用缺省的out/target/prodect/generic文件夹, 本文档简介了这个编译系统 ...

  9. android:制作 Nine-Patch 图片

    它是一种被特殊处理过的 png 图片,能够指定哪些区域可以被拉伸而 哪些区域不可以. 那么 Nine-Patch 图片到底有什么实际作用呢?我们还是通过一个例子来看一下吧.比如 说项目中有一张气泡样式 ...

最新文章

  1. python json.loads()中文问题-Python实现的json文件读取及中文乱码显示问题解决方法...
  2. Python函数式编程——map()、reduce()
  3. matchTemplate函数
  4. Py之Xlrd:Xlrd的使用方法总结(获取的sheet名字/sheet索引/sheet内容/数和列数、获取整行和整列的值(列表) 、指定单元格的内容/数据类型)之详细攻略
  5. 软考-信息系统项目管理师-知识管理
  6. Maven报错Missing artifact jdk.tools:jdk.tools:jar:1.7
  7. linux -rpm,linux 的rpm命令
  8. 前端 HTML 获取自定义标签tag 的值方法
  9. 习题4-8 高空坠球(20 分)
  10. 伍楼阁使用的WordPress代码高亮插件使用说明
  11. 锐收计算机编码,大众电脑编码大全
  12. 趣学python教孩子学编程pdf免费下载_《趣学Python——教孩子学编程》——导读-阿里云开发者社区...
  13. python安装出错0x80072ee7_python3.6.4安装错误0x80072efd
  14. 软件开发人员如何自我学习?
  15. iOS8高清壁纸 - 专为iOS8量身定做,每日更新
  16. 武书连2021中国一流大学排行榜发布!北大/中科大/清华位列前三
  17. xlutils的Copy模块
  18. JAVA基础-字符串
  19. 与朱元思书(南朝 梁 吴均)
  20. C语言实现:最长回文子串算法

热门文章

  1. 链接 动态链接 静态链接
  2. 记录spark-yarn模式下提交自己写的java程序
  3. CentOS修改MySql数据库目录datadir
  4. C语言: 函数调用的开销
  5. linux删除某个path_linux 从path中去掉某个
  6. c语言输出26个英文字母的能量值,菜鸟求助,写一个随机输出26个英文字母的程序...
  7. hdc mfc 画扇形图_科学网—画扇形图(idl程序) - 张国印的博文
  8. 7.5 obtaining database metadata
  9. 多线程测试工具groboutils的使用
  10. 应用程序连接Oracle rac的URL写法