Drawable.Callback
接口,定义更新相关方法invalidateDrawable、scheduleDrawable、unscheduleDrawable
Drawable
封装一个Callback对象并提供设置方法setCallback
定义并实现更新相关方法
invalidateSelf方法
更新
调用传入的Callable的invalidateDrawable方法
scheduleSelf方法
延时更新
调用传入的Callable的scheduleDrawable方法
unscheduleSelf方法
取消延时更新
调用传入的Callable的unscheduleDrawable方法
View/ImageView
View实现Drawable.Callback
实现scheduleDrawable方法
利用AttachInfo.mHandler或 Choreographer.mHandler在UI线程中延时执行传入的Runnable
实现unscheduleDrawable方法
利用AttachInfo.mHandler或 Choreographer.mHandler在UI线程中取消执行Runnable
实现invalidateDrawable方法
调用invalidate方法
View.setBackground和ImageView.setImageDrawable
调用Drawable.setCallback,将View或ImageView作为Drawable.Callback传入Drawable
总结
方法实现
调用Drawable的invalidateSelf方法,实际上是调用View的invalidate方法
调用Drawable的scheduleSelf/unscheduleSelf方法,实际上是在UI线程中延时执行或取消执行传入的Runnable
设计模式:Drawable和View
Drawable.Callback,定义更新相关方法
Drawable,持有Drawable.Callback对象并利用其实现更新相关方法
View,实现Drawable.Callback,并在设置Drawable时,将自身作为Drawable.Callback传入Drawable
实现Drawable调用View中的代码
本站资源均来自互联网,仅供研究学习,禁止违法使用和商用,产生法律纠纷本站概不负责!如果侵犯了您的权益请与我们联系!
转载请注明出处: 免费源码网-免费的源码资源网站 » Android UI:Drawable:更新操作的源码分析
发表评论 取消回复