您的位置:首页 > 娱乐 > 明星 > Android UI:Drawable:更新操作的源码分析

Android UI:Drawable:更新操作的源码分析

2024/10/6 5:58:02 来源:https://blog.csdn.net/liufeismart2024/article/details/139492192  浏览:    关键词:Android UI:Drawable:更新操作的源码分析

文章目录

    • Drawable.Callback
    • Drawable
    • View/ImageView
    • 总结

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中的代码

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com