安卓开发 自定义控件 奥米噶 ClockView,打造自己的奥米噶送给你的女神

阅读: 评论:0

安卓开发 自定义控件 奥米噶 ClockView,打造自己的奥米噶送给你的女神

安卓开发 自定义控件 奥米噶 ClockView,打造自己的奥米噶送给你的女神

今天用安卓的画笔和画布给大家画一个奥米噶手表,新手上路可能有点困难,不过跟着画一遍,就会充分了解和熟悉安卓的自定义控件了,话不多收直接上图,看看我们的奥米噶;

感觉还可以是吧*

下面带上studio,让我们为自己做一个奥米噶吧:

1.初始化自定义控件ClockView,重写onMeasure方法

自定义类ClockView继承自View,完善构造方法,这里我们重写一下onMeasure方法,因为手表表盘基本都是高和宽相等的嘛,自己写过自定义控件的朋友肯定非常熟悉这个步骤,代码如下:

 @Overrideprotected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {Measure(widthMeasureSpec, heightMeasureSpec);viewWidth = Size(widthMeasureSpec);viewHeight = Size(heightMeasureSpec);int widthMode = Mode(widthMeasureSpec);int heightMode = Mode(heightMeasureSpec);switch (widthMode) {case MeasureSpec.EXACTLY:viewWidth = viewHeight = Math.min(viewHeight, viewWidth);setMeasuredDimension(viewWidth, viewHeight);break;case MeasureSpec.AT_MOST:float density = getResources().getDisplayMetrics().density;viewWidth = viewHeight = (int) (100 * density);setMeasuredDimension(viewWidth, viewHeight);break;}textsize = viewWidth / 32;i``
itpaint();}

onDraw方法是在onMeasure方法之后调用的,所以这里我在计算宽高之后,给一些属性初始化了,以及textsize赋值了,之所以在这里赋值,,也就是itpaint方法,如下:

    private void initpaint() {panPaint = new Paint(Paint.ANTI_ALIAS_FLAG);textPaint = new TextPaint(Paint.ANTI_ALIAS_FLAG);textPaint.setColor(Color.WHITE);textPaint.setTextSize(textsize);rect = new Rect();}

当然里的初始化可以在以在很多地方

2.重写onDraw方法

重头戏都在这个onDraw方法里面,首先我们要明白一点,先画出来的东西,会被后画出来的东西遮盖住(重叠的地方),所以,我们必须知道先画什么,后画什么。

2.1表盘

表盘看着很简单,外面一个环,里面一个圆,通过设置画笔paint的属性(实心、空心,以及画笔的粗细),调用canvas的drawCircle方法来完成,这里主要就是弄明白原型,以及半径就可以了,代码如下:

//画出蓝绿色表盘内测panPaint.setColor(getResources().lor.biaopan));canvas.drawCircle(getWidth() / 2, getHeight() / 2, (float)    (getWidth() / 

本文发布于:2024-01-28 23:24:30,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170645547411045.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:自己的   自定义   控件   女神   卓开发
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23