一、自绘控件

下面我们准备来自定义一个计数器View,这个View可以响应用户的点击事件,并自动记录一共点击了多少次。新建一个CounterView继承自View,代码如下所示:

可以看到,首先我们在CounterView的构造函数中初始化了一些数据,并给这个View的本身注册了点击事件,这样当CounterView被点击的时候,onClick()方法就会得到调用。而onClick()方法中的逻辑就更加简单了,只是对mCount这个计数器加1,然后调用invalidate()方法。通过 Android视图状态及重绘流程分析,带你一步步深入了解View(三) 这篇文章的学习我们都已经知道,调用invalidate()方法会导致视图进行重绘,因此onDraw()方法在稍后就将会得到调用。

这样,一个自定义的View就已经完成了,并且目前这个CounterView是具备自动计数功能的。那么剩下的问题就是如何让这个View在界面上显示出来了,其实这也非常简单,我们只需要像使用普通的控件一样来使用CounterView就可以了。比如在布局文件中加入如下代码:

可以看到,这里我们将CounterView放入了一个RelativeLayout中,然后可以像使用普通控件来给CounterView指定各种属性,比如通过layout_width和layout_height来指定CounterView的宽高,通过android:layout_centerInParent来指定它在布局里居中显示。只不过需要注意,自定义的View在使用的时候一定要写出完整的包名,不然系统将无法找到这个View。

总结

以上所述是小编给大家介绍的Android自定义View的实现方法实例详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

android自定义view案例,Android自定义View的实现方法实例详解相关推荐

  1. android+发邮件,Android发送邮件的方法实例详解

    Android发送邮件的方法实例详解 时间:2021-05-20 本文实例讲述了Android发送邮件的方法.分享给大家供大家参考,具体如下: 在android手机中实现发送邮件的功能也是不可缺少的. ...

  2. android 实现毫秒定时器,Android实现定时器的五种方法实例详解

    一.Timer Timer是Android直接启动定时器的类,TimerTask是一个子线程,方便处理一些比较复杂耗时的功能逻辑,经常与handler结合使用. 跟handler自身实现的定时器相比, ...

  3. android studio发邮件功能,Android发送邮件的方法实例详解

    本文实例讲述了Android发送邮件的方法.分享给大家供大家参考,具体如下: 在android手机中实现发送邮件的功能也是不可缺少的.如何实现它呢?下面以简单的例子进行说明. 程序如下: import ...

  4. java自定义菜单跳转页面_微信公众号开发 自定义菜单跳转页面并获取用户信息实例详解...

    微信公众号开发 自定义菜单 请先读完本文再进行配置开发 请先前往微信平台开发者文档阅读"网页授权获取用户基本信息"的接口说明 在微信公众账号开发中,往往有定义一个菜单,然后用户点击 ...

  5. android系统旁边有一个锁,Android中系统自带锁WalkLock与KeyguardLock用法实例详解

    本文实例讲述了Android中系统自带锁WalkLock与KeyguardLock用法.分享给大家供大家参考,具体如下: WalkLock - 顾名思义 唤醒锁 点亮屏幕用的 KeyguardLock ...

  6. php渐变背景颜色,css背景颜色渐变案例:线性渐变和径向渐变效果实例详解

    渐变是两种或多种颜色之间的平滑过渡.以前,必须使用图像来实现这些效果.但是,通过使用 CSS3 渐变(gradients),可以减少下载的事件和宽带的使用.此外,渐变效果的元素在放大时看起来效果更好, ...

  7. php jwt使用案例,PHP使用JWT创建Token的实例详解

    iss (issuer)issuer请求实体,可以是发起请求的用户的信息,也可是jwt的签发者 sub (Subject)设置主题,类似于发邮件时的主题 aud (audience)接收jwt的一方 ...

  8. pythonfor循环案例教程_python开发之for循环操作实例详解,pythonfor实例详解

    python开发之for循环操作实例详解,pythonfor实例详解 本文实例讲述了python开发之for循环操作.分享给大家供大家参考,具体如下: 下面是我做的一些学习记录供大家参考: #基本的f ...

  9. android 刷新标题栏,Android 自定义标题栏的实例详解

    Android 自定义标题栏的实例详解 开发 Android APP 经常会用到自定义标题栏,而有多级页面的情况下还需要给自定义标题栏传递数据. 本文要点: 自定义标题填充不完整 自定义标题栏返回按钮 ...

最新文章

  1. 嵌入式Linux内存压力测试
  2. 机器视觉学习笔记:BP神经网络详解
  3. git 合并代码_git的几种实用操作(合并代码与暂存复原代码)
  4. 一切都是问题,一切都着落在自身
  5. SQLServer数据库的备份/恢复的3中策略实例
  6. 比较经典的三层交换机实验
  7. javascript数组的操作
  8. Matlab | Matlab从入门到放弃(1)——变量
  9. VTK:绘制BlankPoint空白点用法实战
  10. 纯虚函数竟然可以有实现体(但无任何实用价值,声明成普通虚函数就可以了)
  11. 《乐在C语言》一2.2 数据类型
  12. element UI 制作带快捷选项的时间选择器
  13. 继续更新,关于MFC琐碎思索
  14. vep文件如何转换mp4_如何将m4v视频格式快速转换成mp4视频呢
  15. 疑似华为P30 Pro样张曝光:10倍变焦依然清晰
  16. Atitit.web三大编程模型 Web Page Web Forms 和 MVC
  17. 物流配送管理系统(ssm,mysql)
  18. VMware vCloud Director视频教程
  19. android app开发计划
  20. 压力大对身体有没有伤害,你觉的有伤害就有伤害,你觉的没伤害就没伤害

热门文章

  1. Java中类、抽象类、接口之间的区别和联系。
  2. (转)30分钟正则表达式入门
  3. domino Format函数详解
  4. 服务器来电后自动开机|xfs文进系统备份恢复linux下误删除的文件
  5. Elasticsearch: Cerebro 用户界面介绍
  6. FastDFS启动报错
  7. Excel中 对「对话气泡(吹き出し)」中的文字添加删除线 等操作
  8. 【Linux】tee命令
  9. json数据转换异常:net.sf.json.JSONException: java.lang.reflect.InvocationTargetException
  10. Visual Studio解决方案的目录结构设置和管理