2

自定义View可能涉及的方法

1、onMeasure

2、onLayout

3、onSizeChanged

4、onDraw

3

实现思路

1、对当前控件设计自定义属性,在Style进行声明

2、在布局文件引入当前控件

3、实现当前控件的构造方法,从参数中获取自定义属性值

4、根据属性值初始化部分数据,例如:字体大小、颜色、画笔等等

5、可以在onMeasure方法中对当前的控件的高度和宽度进行设置

6、onLayout方法会在布局发生变化时进行回调,使用前可以先判断是否发生变化,如果当前控件是ViewGroup可以再次设置子View的位置,此方法会调用2次及以上;

7、onSizeChanged方法在大小发生变化时会调用,屏幕的旋转也会调用此方法;在此方法可以获取到孔家的宽高;可以在此初始化一些和屏幕有关的数据,例如:与屏幕有比例关系的数据等等;

8、根据以上的数据,在onDraw方法中进行绘制

4

代码实现分析

第一个控件

构造方法中初始化部分数据:

在onMeasure中可以设置View宽高,但此处我并未使用:

onLayout中可以设置子View的位置,由于当前是VIew,所以也未用到:

onSizeChanged是关键的方法,计算一些和屏幕有关的数据:

最后就是绘制的方法了:

由于涉及到,手指可以点击滑动,所以,需要重写onTouch事件:

最后把定义监听器供外部调用:

第二个控件

此控件原理与上个控件差不多一样;

首先,初始化需要的数据

onDraw绘制界面元素:

最后,滑动事件,由于小球滑动到中间位置时,需回到间隔线位置,所以需加小球的位置处理

由于小球有一个自动归位的功能,所以需加子线程不断刷新界面:

最后把定义的监听器暴漏出去:

如需源码,关注公众号后发送邮箱及标题到公众号即可,我会第一时间回复给你源码。

欢迎关注公众号,实时给你推送文章,谢谢支持;

微信搜索公众号:coolspan

文章出自:Coolspan,欢迎大家关注公众号查看原文。

android 小米字体大小,Android仿小米巨无霸字体调整控件相关推荐

  1. Android全局修改字体大小,Android 仿微信全局字体大小调整

    image 目录 一.前言 二.效果预览 三.实现步骤 1.自定义字体调整控件 2.滑动按钮改变当前页面预览字体大小 3.返回时,保存放大倍数并重启应用 4.初始化应用时配置字体放大倍数. 四.Dem ...

  2. android改变整个app字体大小,Android APP字体随系统字体调整造成界面布局混乱问题解决方案...

    一.遇到的问题: 当用户调整系统字体大小的时候,APP的字体一般也都会跟随改变,进而导致某些界面布局排版混乱. 下面先说一下关于sp单位的理解 sp单位除了受屏幕密度影响外,还受到用户的字体大小影响, ...

  3. Android仿QQ,网易邮箱客户端收件人控件

    效果图 实现思路 这个功能首先想到的是安卓原生控件AutoCompleteTextView和MultiAutoCompleteTextView 前者用的还是比较多的,比如字符联想,最近搜索记录等用的都 ...

  4. android 桌面图标的点击放大效果,Android仿英语流利说取词放大控件的实现方法(附demo源码下载)...

    本文实例讲述了Android仿英语流利说取词放大控件的实现方法.分享给大家供大家参考,具体如下: 1 取词放大控件 英语流利说是一款非常帮的口语学习app,在app的修炼页面长按屏幕,会弹出一个放大镜 ...

  5. css设置字体大小会受分辨影响吗,CSS字体大小设置时的参考(转)

    font-size 设置的绝对关键字: 以下几个绝对字体大小的设置是有效的.当然他们是浏览器预定义设置的.给元素指定了绝对关键字font-size的时候,该元素就不会继承父元素的字体大小 font-s ...

  6. 仿饿了么加入购物车旋转控件 - 自带闪转腾挪动画 的按钮。

    AnimShopButton 项目地址:mcxtzhang/AnimShopButton 简介:仿饿了么加入购物车旋转控件 - 自带闪转腾挪动画 的按钮.自带海量可定制 UI 属性.在 Recycle ...

  7. 感受亚马逊:“抠门”的巨无霸电商如何炼成

     感受亚马逊:"抠门"的巨无霸电商如何炼成 腾讯科技[微博]纪振宇2015年08月30日06:54 分享 微博 空间 微信 新浪微博 邮箱 QQ好友 人人网 开心网 [摘要]亚 ...

  8. 在vc2005中使用MoveWindow()调整控件大小,不能及时刷新,在vc6中则可以

    在vc2005中使用MoveWindow()调整控件大小,不能及时刷新,在vc6中则可以? // ------------------------------ vc2005 ------------- ...

  9. 链家全解剖:必须佩服、也必须警惕的巨无霸

    链家全解剖:必须佩服.也必须警惕的巨无霸 百度百科对信息不对称的解释是这样的:信息不对称(AsymmetricInformation)指交易中的各人拥有的信息不同.在市场经济活动中,各类人员对有关信息 ...

最新文章

  1. Arch安装zsh以及通过 Oh-My-ZSH! 开源项目的配置
  2. pfsense软路由防火墙(安装过程、L2tp配置)
  3. 手机拍照功能的简单实现
  4. .NET 4.0 任务(Task)
  5. 一行代码搞定 FTP 服务
  6. IntelliJ IDEA 显示行号方法
  7. java 取栈顶元素_java集合系列(7)Stack
  8. P3667 [USACO17OPEN]Bovine Genomics
  9. Oracle数据库安装图文操作步骤
  10. c ++向量库_C ++中的2D向量–实用指南2D向量
  11. android 通过串口来控制pwm的输出_ESP8266_07基于PWM的呼吸灯
  12. markdown2 awesomium 无法预览
  13. 什么是悬赏任务APP源码?
  14. 微信小程序中集成有赞UI自定义Tabbar组件
  15. 台电tbook10s官方固件_【11月1日】台电官方系统固件更新
  16. 华为2019软件精英挑战赛-CodeCraft-2019大佬开源代码集合
  17. java_opts 与catalina_opts区别_CATALINA_OPTS和 JAVA_OPTS区别
  18. 爬取王者荣耀网站所有英雄皮肤图片
  19. 初学graphiql 查询操作
  20. 百度,dingding 安装在ubuntu1604

热门文章

  1. angularjs学习笔记一——了解angularjs、开发环境搭建、第一个angularjs程序
  2. BUUCTF msic 专题(74)[GXYCTF2019]SXMgdGhpcyBiYXNlPw==
  3. 初识sun.msic.Unsafe类:CAS操作的核心类
  4. Python判断是否构成三角形,求三角形面积
  5. 基于bootstrap的web登陆实例
  6. 751. 数组的左方区域
  7. 中国移动《5G VoNR+白皮书》发布!
  8. IAP-应用内购买(部分)
  9. 数据科学家分享:AI之主流CNN网络的架构分析
  10. ajax分页(易源数据api)