仿迅雷下载球
来源:互联网 发布:样本册软件 编辑:程序博客网 时间:2024/04/28 07:52
效果展示
package com.example.administrator.mydrawpath.widget;import android.content.Context;import android.graphics.Bitmap;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.Path;import android.graphics.PorterDuff;import android.graphics.PorterDuffXfermode;import android.os.Handler;import android.os.Message;import android.util.AttributeSet;import android.view.MotionEvent;import android.view.View;/** * Created by Administrator on 2015/9/17. */public class MyPath extends View { private int width; private int height; private Paint mPaintPath; private Path mPath; private int range=5; private Paint mPaintPoint; private Bitmap mBitmap; private Paint mPaintText;//用于记录水高占圆直径的百分比 private int size;//通过size的改变来让“流水的高度上涨” private int count;//通过count的改变实现贝塞尔曲线的移动,以达到流动的效果 private static final int NEED_UPDATA = 0X22; private Handler handler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); switch (msg.what) { case NEED_UPDATA: if (count < 80) { count += 5; } else { count = 0; } if (size < 300) { size++; } invalidate(); handler.sendEmptyMessageDelayed(NEED_UPDATA, 100); break; } } }; public MyPath(Context context) { super(context); } public MyPath(Context context, AttributeSet attrs) { super(context, attrs); mPaintPath = new Paint(); mPaintPath.setColor(Color.BLUE); mPaintPath.setAntiAlias(true); mPaintPath.setStyle(Paint.Style.FILL); mPaintPath.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));//设置重叠方式 mPath = new Path(); mPaintPoint = new Paint(); mPaintPoint.setColor(Color.RED); mPaintPoint.setStyle(Paint.Style.FILL); mPaintText = new Paint(); mPaintText.setColor(Color.WHITE); mPaintText.setTextSize(50); mPaintText.setTextAlign(Paint.Align.CENTER); handler.sendEmptyMessage(NEED_UPDATA); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); width = getDefaultSize(getSuggestedMinimumWidth(), widthMeasureSpec); height = getDefaultSize(getSuggestedMinimumHeight(), heightMeasureSpec); setMeasuredDimension(width, height); mBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); mCanvas = new Canvas(mBitmap); } private Canvas mCanvas; float x; float y; @Override public boolean onTouchEvent(MotionEvent event) { switch (event.getAction()){ case MotionEvent.ACTION_MOVE: case MotionEvent.ACTION_DOWN: x=event.getX(); y=event.getY(); if(200<x&&x<400&&y>200&&y<400){ range=15;//按下或移动时将水波的幅度变大 } invalidate(); return true; case MotionEvent.ACTION_UP: range=5;//抬起时回复正常幅度 return true; } return super.onTouchEvent(event); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas);// mPath.moveTo(100,100); canvas.drawColor(Color.GREEN);//设置画布的背景色 mPath.reset(); //用以下方法画一个上段是移动的贝塞尔曲线的长方形 mPath.moveTo(500, 450 - size); mPath.lineTo(500, 500); mPath.lineTo(count, 500); mPath.lineTo(count, 450 - size); for (int i = 0; i < 20; i++) { mPath.rQuadTo(20, range, 40, 0); mPath.rQuadTo(20, -range, 40, 0); } mPath.close(); mCanvas.drawCircle(300, 300, 150, mPaintPoint);//在Bitmap上画一个圆形外框 mCanvas.drawPath(mPath, mPaintPath);//在Bitmap上画上路径 mCanvas.drawText((float) (Math.round(size * 100 / 3f)) / 100 + "%", 300, 300, mPaintText); canvas.drawBitmap(mBitmap, 0, 0, null);//将bitmap画到画布上/** * Canvas基本画图 * */ /*画三角形*/// mPath.lineTo(0,200);// mPath.lineTo(200,200);// mPath.close(); /*画圆形,并在在圆形路径上写字*/// mPath.addCircle(width/2,height/2,200, Path.Direction.CW);// canvas.drawTextOnPath("写一写而已",mPath,0,0,mPaintPath);// canvas.drawPath(mPath,mPaintPath); /*贝塞尔曲线*/// mPath.quadTo(100,400,300,300);// canvas.drawPath(mPath,mPaintPath);// canvas.drawPoint(100,100,mPaintPoint);// canvas.drawPoint(100,400,mPaintPoint);// canvas.drawPoint(300,300,mPaintPoint); /*画波浪线*/ }}
0 0
- 仿迅雷下载球
- 仿迅雷下载进度条
- 仿迅雷下载项目分析
- 仿迅雷,ie中右键单击下载 vc实现方法
- 仿迅雷下载进度的圆形面积进度条
- 仿迅雷下载进度的圆形面积进度条
- 仿迅雷工具栏
- 仿迅雷实现下载工具,支持断点续传和多线程下载以及简单界面展示
- 仿迅雷播放器教程
- 迅雷定时下载
- 迅雷优化下载方法
- Ubuntu 下载 迅雷链接
- 迅雷下载原理
- 迅雷下载与Base64
- 迅雷的可视化下载
- 迅雷api 下载 调用
- 网页调用迅雷下载
- 迅雷下载破解方法
- libsvm-mat上手
- 一个简单的TCP套接字编程实例
- 网络编程
- 那些C++牛人的博客
- POJ 2236 A - Wireless Network[kuangbin带你飞]专题五 并查集
- 仿迅雷下载球
- module_init 和 late_initcall 区别
- 错误——持续更新
- $_FILES[]['type']类型
- ios-新浪微博开发-13-新特性(1)
- 【leetcode】No.154 Find Minimum in Rotated Sorted Array II
- xmlns 属性
- 质数中的质数
- 对软件的认识