[Android实例] 波浪动画效果,正弦曲线绘制
来源:互联网 发布:js中的offsettop 编辑:程序博客网 时间:2024/04/30 04:03
该篇文章从eoeAndroid搬迁过来的,原文地址:[Android实例] 波浪动画效果,正弦曲线绘制
我们都知道正弦曲线的表达式为y=Asin(ωx+φ)+k,所以,在该demo中,我自定义一个view,在view的onDraw函数里手动绘制波浪效果的正弦函数,根据x坐标和正弦曲线表达式获取y坐标,此时y=10 * Math.sin((i + angle) * Math.PI / 180) + 20;
主要代码:
@Override public void onDraw(Canvas canvas) { // TODO Auto-generated method stub super.onDraw(canvas); setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); int height = getHeight(); int width = getWidth(); paint1.setColor(Color.rgb(205, 243, 246)); paint2.setAlpha(200); paint2.setColor(Color.rgb(150, 206, 231)); paint3.setAlpha(150); paint3.setColor(Color.rgb(89, 186, 231)); double lineX = 0; double lineY1 = 0; double lineY2 = 0; double lineY3 = 0; for (int i = 0; i < width; i++) { lineX = i; if (isRun) { lineY1 = Math.sin((i + angle) * Math.PI / 180); lineY2 = 10 * Math.sin((i + angle) * Math.PI / 180) + 20; lineY3 = 20 * Math.sin((i + angle) * Math.PI / 180) + 50; } else { lineY1 = 0; lineY2 = 20; lineY3 = 50; } canvas.drawLine((int) lineX, (int) (lineY1 + height / 1.5), (int) lineX + 1, (int) (lineY2 + height / 1.5), paint1); canvas.drawLine((int) lineX, (int) (lineY2 + height / 1.5), (int) lineX + 1, (int) (lineY3 + height / 1.5), paint2); canvas.drawLine((int) lineX, (int) (lineY3 + height / 1.5), (int) lineX + 1, height, paint3); } }
开启线程进行每隔1毫毛angle+1,当angle为360的时候,设置angle为0:
@Override public void run() { // TODO Auto-generated method stub while (isRun) { angle++; if (angle == 360) { angle = 0; } try { Thread.sleep(1); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } public void start() { isRun = true; new Thread(this).start(); } public void stop() { isRun = false; angle = 0; }
下载地址:项目代码
0 0
- [Android实例] 波浪动画效果,正弦曲线绘制
- Android实现波浪动画效果(Bezier)
- 水纹波浪效果动画
- Android绘制波浪曲线,效果很赞的。
- Android利用SurfaceView绘制正弦曲线
- Android 基于surfaceView绘制正弦曲线
- Android绘制波浪线
- Android动画之正弦曲线运动
- Android水纹波浪动画
- Other:Android绘制波浪曲线
- html5Canvas动画实现球内波浪效果
- Shader 简单的波浪顶点动画效果
- Android实现波浪效果 - WaveView
- Android波浪动态图(仿百度外卖、淘宝app用户界面用到的动画效果)
- canvas绘制动画效果
- [Android实例] android动画效果切换案例
- Android 绘制波浪线(使用 bitmap )
- silverlight动态绘制正弦曲线
- 百度搜索引擎高级搜索指令
- Android SDK: Embed a WebView with the WebKit Engine
- Python模块,glob 文件路径查找之删除过期日志
- 学习字符串后的感受
- 链表
- [Android实例] 波浪动画效果,正弦曲线绘制
- Zoho Survey功能更新
- AFNetwork 3.0 源码解读(四)AFURLResponseSerialization
- linux内核开发(一)linux体系结构与内核结构
- Node.js TODO
- linux下编译,运行java文件
- 如何编写Android.mk 文件
- Local Notification not working since updating to IOS 8 and Xcode 6
- HttpClient使用详解