在Android中利用动画效果绘制正弦波
来源:互联网 发布:路易斯·蒙巴顿知乎 编辑:程序博客网 时间:2024/05/29 03:26
我们都知道正弦曲线的表达式为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中利用动画效果绘制正弦波
- matplot 动画 绘制正弦波 曲线
- Android开发实例:绘制正弦波
- 在SurfaceView中模拟正弦波
- Hack7-在Canvas上绘制动画效果
- Android 绘制一个Loading动画__向图片中缓慢填充颜色,从而形成动画效果
- [Android实例] 波浪动画效果,正弦曲线绘制
- 在MFC中,利用GDI绘制橡皮筋效果-直线,圆,椭圆,矩形
- canvas绘制动画效果
- [QNX]绘制一个正弦波
- Android中常用动画效果
- android中anim动画效果
- Android中常用动画效果
- Android动画效果-更新中
- Android附带涨潮动画效果的曲线报表绘制
- Android:使用PathMeasure绘制动画效果的搜索按钮
- Android_正弦波动画
- 在asp中利用vml绘制曲线图
- 李二狗的梦想
- Java 线程同步 卖票问题
- Java正则表达式
- CSS3 timing-function:steps()详解
- Android开发中常见的5大内存泄漏问题及解决办法
- 在Android中利用动画效果绘制正弦波
- Android打开系统设置界面
- 数据库设计 Step by Step (4)——高级ER模型构件
- 为所有a标签加target属性
- highcharts创建折线图
- iOS SDWebImage源码研究(三)
- BestCoder Round #79 1002/hdu 5661 Claris and XOR 贪心
- android调试工具DDMS的使用详解
- iOS 支持最新版本调试的文件路径备忘录