public TestView(Context context) {
super(context);
surfaceHolder = getHolder();
surfaceHolder.addCallback(this);
countThread = new CountThread(surfaceHolder);
}
public TestView(Context context, AttributeSet attributeSet) {
super(context, attributeSet);
surfaceHolder = getHolder();
surfaceHolder.addCallback(this);
countThread = new CountThread(surfaceHolder);
}
@Override
public void run() {
Canvas canvas = null;
int pivotX = getResources().getDisplayMetrics().widthPixels / 2;
RectF rectF = new RectF(pivotX - 300, pivotX - 300, pivotX + 300, pivotX + 300);
while (!isStop) {
try {
canvas = surfaceHolder.lockCanvas();
canvas.drawColor(Color.WHITE);//设置画布背景为白色
// canvas.drawRoundRect(300, 300, 600, 600, 150, 150, paint);//直接使用该行代码来画圆是行不通的,因为这个方法要求版本21,我的手机运行android版本是19
canvas.drawArc(rectF, -90, endAngle++, false, paint);//-90在这里不等于270,所以要想从最上方开始画弧,就得用-90
canvas.drawText(countTime(endAngle), pivotX, pivotX, paintText);//显示计算的时间
Thread.sleep(1000);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (canvas != null) {//需要对canvas进行非空判断
surfaceHolder.unlockCanvasAndPost(canvas);
}
}
}
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
if (!countThread.isAlive()) {//如果线程不存在,则启动线程——>当应用挂起的时候Thread是存在的,如果不做这个判断,会报“Thread already started ”错误
countThread.start();//SurfaceView创建时开启线程
}
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有