游走型进度条(桌面360)

进度条显示主程序package com.test.mypathview;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import android.app.Activity;import android.graphics.Bitmap;import android.os.Bundle;import android.os.Environment;import android.os.Handler;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;{PROGRESS=0X56;private Button mButton;private MyPath mMyRecProgress;private int mProgress;private Handler mHandler=new Handler(){(android.os.Message msg) {switch (msg.what) {case PROGRESS:mProgress++;if(mProgress<=100){mMyRecProgress.setmProgress(mProgress);mHandler.sendEmptyMessageDelayed(PROGRESS, 200);}break;default:break;}};};(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//得到继承View的组件mMyRecProgress= (MyPath) findViewById(R.id.progress);mButton=(Button) findViewById(R.id.button);mButton.setOnClickListener(this);}(View v) {switch (v.getId()) {case R.id.button:mHandler.sendEmptyMessageDelayed(PROGRESS, 1000);break;default:break;}}}继承View的程序package com.test.mypathview;import android.content.Context;import android.graphics.Bitmap;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.Paint.Align;import android.graphics.Path;import android.graphics.Path.Direction;import android.graphics.PorterDuff;import android.graphics.PorterDuffXfermode;import android.os.Handler;import android.os.Message;import android.util.AttributeSet;import android.view.View;{private int mProgress;() {return mProgress;}(int mProgress) {this.mProgress = mProgress;invalidate();}private Paint mPaintText;private Bitmap mBitmap;private Canvas mBitmapCanvas;private int mHeight;private int mWidth;private Path mPath;private Paint mPaint;private Paint mPaintPoint;private int count;private int mSize;private boolean isAdd=true;MESS=4;private Handler mHandler=new Handler(){(Message msg) {switch (msg.what) {case MESS:if(count<150){count+=5;invalidate();}else{count=0;invalidate();}mHandler.sendEmptyMessageDelayed(MESS, 50);break;default:break;}};};public MyPath(Context context, AttributeSet attrs) {super(context, attrs);//设置画百分比的画笔mPaintText=new Paint();mPaintText.setTextSize(50);mPaintText.setTextAlign(Align.CENTER);//设置填充进度的画笔mPaint=new Paint();mPaint.setStyle(Paint.Style.FILL);mPaint.setAntiAlias(true);mPaint.setTextSize(50);mPaint.setColor(Color.GREEN);//设置只显示重叠的部分mPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));//设置外面轮廓的画笔mPaintPoint=new Paint();mPaintPoint.setStrokeWidth(2);mPaintPoint.setStyle(Paint.Style.FILL);mPaintPoint.setColor(Color.RED);mPath=new Path();//设置启动线程mHandler.sendEmptyMessageDelayed(MESS, 2000);}public MyPath(Context context) {super(context);}(int widthMeasureSpec, int heightMeasureSpec) {super.onMeasure(widthMeasureSpec, heightMeasureSpec);mWidth=getDefaultSize(getSuggestedMinimumWidth(), widthMeasureSpec);mHeight=getDefaultSize(getSuggestedMinimumHeight(), heightMeasureSpec);//在屏幕上创建一个画板mBitmap = Bitmap.createBitmap(mWidth, mHeight, Bitmap.Config.ARGB_8888);mBitmapCanvas = new Canvas(mBitmap);}(Canvas canvas) {super.onDraw(canvas);//画外面的圆形 mBitmapCanvas.drawCircle(300, 300,150, mPaintPoint);mPath.reset();//用锯齿线去画一个矩形,,然后填充满矩形mPath.moveTo(500, 450-mProgress*3);mPath.lineTo(500, 500);mPath.lineTo(count, 500);mPath.lineTo(count, 450-mProgress*3);for(int i=0;i<10;i++){mPath.rQuadTo(20, 8, 40, 0);mPath.rQuadTo(20, -8, 40, 0);}mPath.close();mBitmapCanvas.drawPath(mPath,mPaint);canvas.drawBitmap(mBitmap, 0,0, null);canvas.drawText(mProgress+”%”, 300, 300, mPaintText );}}布局文件====<com.test.mypathview.MyPath=”match_parent”/><TextView===”100sp” /></RelativeLayout>效果图

享受每一刻的感觉,欣赏每一处的风景,这就是人生。

游走型进度条(桌面360)

相关文章:

你感兴趣的文章:

标签云: