本次主要分析我们在项目中解析自定义drawabale.xml文件是怎么转化为Drawable对象
映射关系如下:
- drawable path =》VectorDrawable
- drawable color =》 ColorDrawable
- drawable sharp =》 ShapeDrawable
这些是最基本的映射关系,当然还有其他映射Drawable,比如:
BitmapDrawable,CircularBorderDrawable,ClipDrawable,AnimationDrawable,RotateDrawable等等
这里分享一个小案例就是我们定义一个drawabale.xml文件,怎么最后显示到我们的界面上去,上代码一步一步分析:
获取Drawable对象:
ContextCompat.getDrawable(getContext(), resId)
Drawable对象转换BitmapDrawable关键代码:(d =》drawable对象)
int width = d.getIntrinsicWidth();
int height = d.getIntrinsicHeight();
width = width > 0 ? width :