1.自定义View画钟实现转动
这个和画圆差不多,不过只是价格分针,并实现其转动,要加一个线程。代码如下:
Java类中的代码

package com.example.ll.canvas;import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.os.Message;
import android.support.annotation.Nullable;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;import java.util.logging.Handler;/*** Created by ll on 2018/3/30.*/public class CircleView extends View {private Paint paint = new Paint();private int sec;//主线程更新Ui(os下的Handler)private android.os.Handler handler = new android.os.Handler() {@Overridepublic void handleMessage(Message msg) {super.handleMessage(msg);//重新调用onDraw方法invalidate();}};public CircleView(Context context, @Nullable AttributeSet attrs) {super(context, attrs);}@Overrideprotected void onDraw(Canvas canvas) {super.onDraw(canvas);//大圆的颜色是蓝色paint.setColor(Color.BLUE);//设置抗锯齿paint.setAntiAlias(true);//圆不是填充的,是描边paint.setStyle(Paint.Style.STROKE);
//        //画笔边的宽度
//        paint.setStrokeWidth(10);//大圆与小圆的画出canvas.drawCircle(getWidth() / 2, getHeight() / 2, getHeight() / 4, paint);canvas.drawCircle(getWidth() / 2, getHeight() / 2, getHeight() / 80, paint);//利用循环将1到12的数字填写到表上for (int i = 1; i <= 12; i++) {//保存画布canvas.save();//旋转角度,旋转中心的设置canvas.rotate(360 / 12 * i, getWidth() / 2, getHeight() / 2);//数字大小的设置paint.setTextSize(40);//旋转的设置canvas.drawText(String.valueOf(i), getWidth() / 2 - 15, getHeight() / 2 - getHeight() / 4 + 60, paint);//刻度表(横线)的描写。参数意思:开始的X坐标,结束的X坐标,开始的Y坐标,结束的Y坐标,画笔(paint)canvas.drawLine(getWidth() / 2, getHeight() / 2 - getHeight() / 4, getWidth() / 2, getHeight() / 2 - getHeight() / 4 + 30, paint);//恢复原样canvas.restore();}//保存画布canvas.save();//旋转角度,旋转中心的设置canvas.rotate(6 * sec, getWidth() / 2, getHeight() / 2);//子针设置canvas.drawLine(getWidth() / 2, getHeight() / 2, getWidth() / 2, getHeight() / 2 - getHeight() / 4 + 100, paint);//恢复原样canvas.restore();}//点击事件(点一下,子针开始转)@Overridepublic boolean onTouchEvent(MotionEvent event) {new Thread(new Runnable() {@Override//子线程做读秒的耗时操作public void run() {//让子针不止转一次while (true) {//子针角度转变次数进行自加sec++;try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}//子线程发出消息让主线程捕获消息handler.sendEmptyMessage(sec);}}}).start();return super.onTouchEvent(event);}
}

xml中的代码

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context="com.example.ll.canvas.CircleActivity"><com.example.ll.canvas.CircleView
        android:layout_width="match_parent"android:layout_height="match_parent" /></android.support.constraint.ConstraintLayout>

效果图如下:

安卓自定义View画钟实现转动相关推荐

  1. 安卓自定义view全解:初始化,onDraw函数,onMeasure函数,用户手势事件

    全栈工程师开发手册 (作者:栾鹏) 安卓教程全解 安卓自定义view全解. view类包含如下函数.可供重写. onFinishInflate() 回调方法,当应用从XML加载该组件并用它构建界面之后 ...

  2. 安卓自定义View——网易颜色渐变效果指示器

    一直想写博客来着,可惜直到现在才真正抽出时间.最近一直在研究网易新闻这个UI框架,发现了一些很值得借鉴的效果,当然,网上也不乏这方面的介绍.本文主要实现的指示器效果为字体颜色和大小渐变,废话不多说献上 ...

  3. android xml画圆,Android自定义View画圆功能

    本文实例为大家分享了Android自定义View画圆的具体代码,供大家参考,具体内容如下 引入布局 xmlns:tools="http://schemas.android.com/tools ...

  4. 安卓自定义view中 绘画基本图形点线面,矩形,方形,圆,扇形,文字及沿着特定方向布局,自定义圆角ImageView图片等等相关api使用方法及举例

    安卓自定义view中 绘画基本图形点线面,矩形,方形,圆,扇形,文字及沿着特定方向布局,自定义圆角ImageView图片等等相关api使用方法及举例,图片压缩处理逻辑 本文旨在介绍自定义View的实现 ...

  5. android控件向内弧度_安卓自定义 View 基础:坐标系、角度弧度、颜色

    安卓自定义View基础 - 坐标系 一.屏幕坐标系和数学坐标系的区别 由于移动设备一般定义屏幕左上角为坐标原点,向右为x轴增大方向,向下为y轴增大方向, 所以在手机屏幕上的坐标系与数学中常见的坐标系是 ...

  6. 安卓自定义View的状态保存与恢复

    安卓自定义View的状态保存与恢复 我们在开发某些安卓应用(如安卓小游戏)时,可能会用到自定义View,这时候往往需要保存自定义View的状态信息,以便在遇到某些情况(如由于系统内存资源紧张被系统杀死 ...

  7. 安卓自定义View实现加载gif图片

    开题:加载GIF的场景在安卓开发中还比较常见,网上也有一些三方法的框架会支持对gif的加载,在上篇博客为大家推荐的图片加载库Glide也支持gif的加载Glide工具类的简单封装,今天给大家分享通过自 ...

  8. 安卓自定义View进阶-事件分发机制原理

    之前讲解了很多与View绘图相关的知识,你可以在 安卓自定义View教程目录 中查看到这些文章,如果你理解了这些文章,那么至少2D绘图部分不是难题了,大部分的需求都能满足,但是关于View还有很多知识 ...

  9. 安卓自定义 View 进阶: 图片文字

    一.Canvas的常用操作速查表 操作类型 相关API 备注 绘制颜色 drawColor, drawRGB, drawARGB 使用单一颜色填充整个画布 绘制基本形状 drawPoint, draw ...

最新文章

  1. 有源汇上下界最小费用可行流 ---- P4553 80人环游世界(拆点 + 有源汇上下界最小费用可行流)
  2. 五天带你学完《计算机网络》·第四天·应用层
  3. Webpack4-基本使用
  4. jpa语法错误_JPA陷阱/错误
  5. 接口测试基础——第5篇xlrd模块
  6. 自己的HTML5 播放器
  7. 使用 anacoda 安装scrapy
  8. 苹果Mac Win10式任务栏工具:uBar
  9. 图的遍历详解(广度优先和深度优先)
  10. 霍夫曼编码最简单的实现
  11. 计算机语言描述正确,关于计算机语言的描述,正确的是( )
  12. 繁星闪烁 ,芳华似锦,走自己的路
  13. 2021年软考时间阶段
  14. Eclipse启动时闪退问题解决方案
  15. 中国鸡荣华鸡为什么干不过洋鸡肯德基
  16. 使用华为光猫ONT使能工具后,本地主机如何通过Telnet登录光猫进行配置
  17. 实现Excel里每个sheet的排序并整合在一个sheet里
  18. windows 网络正常 浏览器却打不开网页解决办法
  19. python类计算器开发_开发一个简单的python计算器
  20. MarkDown-符号大全

热门文章

  1. ***偷删警察蜀黍文件
  2. 精简Cocos2dx-python环境搭建工程创建过程
  3. 书本例子strindex函数
  4. JavaWEB(项目分析用户登录发布新闻)
  5. 每日关注:微软发Bing可视化搜索功能(9月15日)
  6. 天龙单机服务器维护,天龙八部网游单机服务器修改资料(Dragon eight online games, single server, modify information).doc...
  7. 程序员生存图鉴:接私活、创业、自由职业,哪种才是理想工作?
  8. P问题、NP问题、NPC问题的概念及实例证明
  9. 带有详细书签的IT电子书大全
  10. 在安卓手机上实现莫尔斯编码器