Android 自定义 View 的重绘和更新使用

对于新手来说,自定义 View 是一种很让人头疼的实现。自定义过程网上已经很多 demo 了。主要还是让自定义 View 继承自 View 类,然后重写他的onMeasure() 、onDraw()、和 onLayout()方法。在 onMeasure()方法中测量出自定义控件的宽和高并且调用setMeasuredDimension(width, height)方法将宽高配置好,然后调用 onLayout()方法来确定自定义控件在布局中的位置,最后调用 onDraw()方法来将自定义 view 绘制在布局中。今天我主要想给大家分享下我个人使用自定义 view 是遇到的重绘和更新使用。

之前在项目中使用到一个自定义控件,需求是在点击控件的时候可以改变它的宽高,并且还要改变它的内容。这时候就需要使用到 view 的 requestLayout()方法及 invalidate ()方法了。这里要注意,必须先调用 requestLayout() 方法再调用 invalidate ()方法。具体原因是,在调用 requestLayout() 方法时,view 只会执行 onMeasure(先)及 onLayout(后)方法,而调用 invalidate ()方法时,view 会调用 onDraw()方法。调用完这两个方法你的自定义控件就可以重绘及更新了。

ps:若只改变宽高调用 requestLayout() 方法即可,若只更新内容调用  invalidate ()方法。

  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值