android 自定义View绘制计时器

来源:互联网 发布:家园2 mac 破解版 编辑:程序博客网 时间:2024/05/22 12:42


package com.example.drawView;import java.text.DecimalFormat;import java.util.Timer;import java.util.TimerTask;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.RectF;import android.util.DisplayMetrics;import android.util.Log;import android.view.View;public class Draw_1 extends View {static Canvas canvas;Paint paint;Context context;int hours=0,minutes=0;String HOURS,MINUTES;boolean b=true;public Draw_1(Context context) {super(context);this.context=context;                //使用timer每1s重绘一次画面Timer timer=new Timer();timer.schedule(new TimerTask() {@Overridepublic void run() {postInvalidate();//重绘viewb=!b;minutes=minutes+1;Log.d("logd", hours+":"+minutes);}}, 1000, 1000);//1秒钟之后开始执行,每1秒钟执行一次}int COUNT=0;protected void onDraw(android.graphics.Canvas canvas) {this.canvas=canvas;canvas.drawColor(Color.WHITE);paint=new Paint();paint.setAntiAlias(true);//去锯齿paint.setColor(Color.GRAY);paint.setStyle(Paint.Style.STROKE);paint.setStrokeWidth(5);//获取屏幕分辨率DisplayMetrics dMetrics=getResources().getDisplayMetrics();//画圆角矩形paint.setStyle(Paint.Style.FILL);RectF rel=new RectF(dMetrics.widthPixels/8, dMetrics.heightPixels/4, 7*dMetrics.widthPixels/8, 2*dMetrics.heightPixels/4);canvas.drawRoundRect(rel, 15, 15, paint);if (minutes>59) {minutes=0;hours=hours+1;}if (hours>59) {hours=0;}//格式化数字,将不足为两位数的数字格式化为类似00,01,02....DecimalFormat decimalFormat=new DecimalFormat("00");HOURS=decimalFormat.format(hours);MINUTES=decimalFormat.format(minutes);paint.setColor(Color.GREEN);paint.setTextSize(300);canvas.drawText(HOURS+"", 5*dMetrics.widthPixels/32 ,55*dMetrics.heightPixels/128, paint);canvas.drawText(MINUTES+"", 17*dMetrics.widthPixels/32 ,55*dMetrics.heightPixels/128, paint);if (b) {paint.setColor(Color.GREEN);//显示小圆点canvas.drawCircle(16*dMetrics.widthPixels/32 ,46*dMetrics.heightPixels/128, 20, paint);canvas.drawCircle(16*dMetrics.widthPixels/32 ,51*dMetrics.heightPixels/128, 20, paint);}else {paint.setColor(Color.GRAY);//不显示小圆点canvas.drawCircle(16*dMetrics.widthPixels/32 ,46*dMetrics.heightPixels/128, 20, paint);canvas.drawCircle(16*dMetrics.widthPixels/32 ,51*dMetrics.heightPixels/128, 20, paint);}};}
最后用一个activity呈现view

package com.example.drawView;import android.app.Activity;import android.content.Context;import android.os.Bundle;public class ShowViewDemo extends Activity{@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(new Draw_1(this));}}


0 0
原创粉丝点击