全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Android自定义View绘制的方法及过程(二)

上一篇《Android 自定义View(一) Paint、Rect、Canvas介绍》讲了最基础的如何自定义一个View,以及View用到的一些工具类。下面讲下View绘制的方法及过程

public class MyView extends View {
 private String TAG = "--------MyView";
 private int width, height;
 public MyView(Context context, AttributeSet attrs) {
 super(context, attrs);
 Log.i(TAG,"MyView()");
 }

 @Override
 protected void onSizeChanged(int w, int h, int oldw, int oldh) {
 super.onSizeChanged(w, h, oldw, oldh);
 width = w;
 height = h;
 Log.i(TAG,"onSizeChanged()");
 }

 @Override
 protected void onDraw(Canvas canvas) {
 super.onDraw(canvas);
 Log.i(TAG,"onDraw()");

 Rect rect = new Rect(0, 0, width, height);
 Paint paint = new Paint();
 paint.setColor(Color.RED);
 canvas.drawRect(rect, paint);
 }

 @Override
 protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
 super.onMeasure(widthMeasureSpec, heightMeasureSpec);
 Log.i(TAG,"onMeasure()");
 }
 

 @Override
 protected void onFinishInflate() {
 super.onFinishInflate();
 Log.i(TAG,"onFinishInflate()");
 }
}

03-15 01:28:53.111 30961-30961/com.myView I/--------MyView: MyView()
03-15 01:28:53.111 30961-30961/com.myView I/--------MyView: onFinishInflate()
03-15 01:28:53.210 30961-30961/com.myView I/--------MyView: onMeasure()
03-15 01:28:53.210 30961-30961/com.myView I/--------MyView: onMeasure()
03-15 01:28:53.520 30961-30961/com.myView I/--------MyView: onMeasure()
03-15 01:28:53.520 30961-30961/com.myView I/--------MyView: onMeasure()
03-15 01:28:53.520 30961-30961/com.myView I/--------MyView: onSizeChanged()
03-15 01:28:53.543 30961-30961/com.myView I/--------MyView: onDraw()

1、MyView() 构造方法,这个不做解释,铁定第一个被调用。

作用:传入Context

2、onFinishInflate() 当View中所有的子控件均被映射成xml后触发

3、onMeasure() 在View放置到父容器时调用

作用:测量View的大小,也可以通过下面方式,修改View的大小

 @Override
 protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
 super.onMeasure(widthMeasureSpec, heightMeasureSpec);
 setMeasuredDimension(100,100);
 }

也可以通过以下方式获取控件的宽和高

 @Override
 protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
 super.onMeasure(widthMeasureSpec, heightMeasureSpec);
 int width = MeasureSpec.getSize(widthMeasureSpec);
 int height = MeasureSpec.getSize(heightMeasureSpec));
 }

4、onSizeChanged() 在控件大小发生改变时调用。所以这里初始化会被调用一次

作用:获取控件的宽和高度

5、onDraw() 最后就是绘制图形了

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# Android  # View  # 绘制  # Android自定义View之继承TextView绘制背景  # Android自定义View系列之Path绘制仿支付宝支付成功动画  # Android自定义view绘制圆环占比动画  # Android自定义View实现shape图形绘制  # Android自定义View实现绘制虚线的方法详解  # Android使用自定义View绘制渐隐渐现动画  # 自定义滑动按钮为例图文剖析Android自定义View绘制  # Android自定义View绘制随机生成图片验证码  # Android编程开发之在Canvas中利用Path绘制基本图形(圆形  # 矩形  # 椭圆  # 三角形等)  # Android使用Canvas绘制圆形进度条效果  # Android开发使用自定义View将圆角矩形绘制在Canvas上的方法  # 可以通过  # 自定义  # 第一个  # 不做  # 上一篇  # 讲了  # 大家多多  # height  # Context 


相关文章: 简历在线制作网站免费版,如何创建个人简历?  如何用PHP快速搭建CMS系统?  c++ stringstream用法详解_c++字符串与数字转换利器  如何通过IIS搭建网站并配置访问权限?  详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)  Python路径拼接规范_跨平台处理说明【指导】  移民网站制作流程,怎么看加拿大移民官网?  唐山网站制作公司有哪些,唐山找工作哪个网站最靠谱?  制作表格网站有哪些,线上表格怎么弄?  c++如何打印函数堆栈信息_c++ backtrace函数与符号名解析【方法】  定制建站平台哪家好?企业官网搭建与快速建站方案推荐  5种Android数据存储方式汇总  动图在线制作网站有哪些,滑动动图图集怎么做?  标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?  青浦网站制作公司有哪些,苹果官网发货地是哪里?  宠物网站制作html代码,有没有专门介绍宠物如何养的网站啊?  建站10G流量真的够用吗?如何应对访问高峰?  股票网站制作软件,网上股票怎么开户?  php条件判断怎么写_ifelse和switchcase的使用区别【对比】  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  建站之星安全性能如何?防护体系能否抵御黑客入侵?  南平网站制作公司,2025年南平市事业单位报名时间?  导航网站建站方案与优化指南:一站式高效搭建技巧解析  相册网站制作软件,图片上的网址怎么复制?  如何在Golang中实现微服务服务拆分_Golang微服务拆分与接口管理方法  高防服务器:AI智能防御DDoS攻击与数据安全保障  建站之星如何修改网站生成路径?  如何在宝塔面板创建新站点?  如何快速搭建安全的FTP站点?  如何快速生成橙子建站落地页链接?  海南网站制作公司有哪些,海口网是哪家的?  c++怎么用jemalloc c++替换默认内存分配器【性能】  潮流网站制作头像软件下载,适合母子的网名有哪些?  ,在苏州找工作,上哪个网站比较好?  开心动漫网站制作软件下载,十分开心动画为何停播?  浅析上传头像示例及其注意事项  香港服务器网站卡顿?如何解决网络延迟与负载问题?  网站制作软件有哪些,制图软件有哪些?  如何选择适配移动端的WAP自助建站平台?  早安海报制作网站推荐大全,企业早安海报怎么每天更换?  赚钱网站制作软件,建一个网站怎样才能赚钱?是如何盈利的?  网站制作报价单模板图片,小松挖机官方网站报价?  ,柠檬视频怎样兑换vip?  最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?  如何在Windows 2008云服务器安全搭建网站?  招贴海报怎么做,什么是海报招贴?  如何在建站宝盒中设置产品搜索功能?  如何处理“XML格式不正确”错误 常见XML well-formed问题解决方法  音响网站制作视频教程,隆霸音响官方网站?  建站之星免费版是否永久可用? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。