- CompoundButton 源码分析
- LinearLayout 源码分析
- SearchView 源码解析
- LruCache 源码解析
- ViewDragHelper 源码解析
- BottomSheets 源码解析
- Media Player 源码分析
- NavigationView 源码解析
- Service 源码解析
- Binder 源码分析
- Android 应用 Preference 相关及源码浅析 SharePreferences 篇
- ScrollView 源码解析
- Handler 源码解析
- NestedScrollView 源码解析
- SQLiteOpenHelper/SQLiteDatabase/Cursor 源码解析
- Bundle 源码解析
- LocalBroadcastManager 源码解析
- Toast 源码解析
- TextInputLayout
- LayoutInflater 和 LayoutInflaterCompat 源码解析
- TextView 源码解析
- NestedScrolling 事件机制源码解析
- ViewGroup 源码解析
- StaticLayout 源码分析
- AtomicFile 源码解析
- AtomicFile 源码解析
- Spannable 源码分析
- Notification 之 Android 5.0 实现原理
- CoordinatorLayout 源码分析
- Scroller 源码解析
- SwipeRefreshLayout 源码分析
- FloatingActionButton 源码解析
- AsyncTask 源码分析
- TabLayout 源码解析
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
2. 展望未来
在 v7 包的 SearchView 里,有一个声明并初始化了的变量,但并没有用到过:
private final AppCompatDrawableManager mDrawableManager; //在构造方法里初始化 mDrawableManager = AppCompatDrawableManager.get();
或许后续版本会用到吧! 抱着好奇的心去看了 AppCompatDrawableManager
源码,但并没有注释说明这个类是干什么用的,看名字只知道是管理 Drawable 的。 既然这样,那就来看下 AppCompatDrawableManager
能干些什么吧。
一步一步来,先看看它初始化的时候干了些什么,查看 get()
方法:
public static AppCompatDrawableManager get() { //使用了懒汉式 if (INSTANCE == null) { INSTANCE = new AppCompatDrawableManager(); installDefaultInflateDelegates(INSTANCE); } return INSTANCE; } private static void installDefaultInflateDelegates(@NonNull AppCompatDrawableManager manager) { final int sdk = Build.VERSION.SDK_INT; // 只在 Android 5.0 以下的系统 if (sdk < 21) { // 在需要的时候使用 VectorDrawableCompat 进行自动处理 manager.addDelegate("vector", new VdcInflateDelegate()); if (sdk >= 11) { // AnimatedVectorDrawableCompat 只能在 API v11+ 使用 manager.addDelegate("animated-vector", new AvdcInflateDelegate()); } } }
从这里,我们可以看出跟 Vector
(矢量) 有关。
- VectorDrawable 能创建一个基于 xml 描述的矢量图。
- AnimatedVectorDrawable 使用
ObjectAnimator
和AnimatorSet
为 VectorDrawable 创建动画。
然后我粗略的看了方法名,有几个关键词: Tint
着色, Cache
缓存,有兴趣的同学可以搜下相关资料,这里就不再深入了。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论