当前位置:   article > 正文

字节跳动最新开源!超实用的UI轮子库,我只是个轮子搬运工_抖音ui库

抖音ui库
  1. 可以设置链接的点击事件。
  • QMUILoadingView

  • 用于显示 LoadingView,支持颜色和大小的设置。

  • QMUIObservableScrollView

  • 可以监听滚动事件的 ScrollView,并能在滚动回调中获取每次滚动前后的偏移量

  • QMUIPopup

  • 提供一个浮层,支持自定义浮层的内容,支持在指定 View 的任一方向旁边展示该浮层,支持自定义浮层出现/消失的动画。

  • QMUIListPopup

  • 继承自 QMUIPopup,在 QMUIPopup 的基础上,支持显示一个列表。

  • QMUIProgressBar

  • 一个进度条控件,通过颜色变化显示进度,支持环形和矩形两种形式,主要特性如下:

  1. 支持在进度条中以文字形式显示进度,支持修改文字的颜色和大小。

  2. 可以通过 xml 属性修改进度背景色,当前进度颜色,进度条尺寸。

  3. 支持限制进度的最大值。

  • QMUIPullRefreshLayout

  • 下拉刷新控件。支持自定义 RefreshView(表示正在刷新的 View),触发刷新的位置等特性。

  • QMUIQQFaceView

  1. 支持显示表情的伪 TextView(继续自定义 View,而不是真正的 TextView), 实现了 TextViewmaxLineellipsizetextSizetextColor 等基本功能。

  2. 支持与 QMUITouchableSpan 配合使用实现内容可点击。

  • QMUIQQFaceCompiler

  • QMUIQQFaceView 的内容解析器,将文本内容解析成 QMUIQQFaceView 想要的数据格式。

  • IQMUIQQFaceManager

  • QMUIQQFaceView 资源管理接口,使用 QMUIQQFaceView 必须实现这个接口以提供表情资源。

  • QMUIRadiusImageView

  • 提供为图片添加圆角、边框、剪裁到圆形或其他形状等功能。

  • QMUIRoundButton

  • Button 提供圆角功能,支持以下特性:

  1. 指定圆角的大小。

  2. 分别指定不同方向的圆角大小。

  3. 指定圆角的大小为高度的一半,并跟随高度变化自适应圆角大小。

  4. 支持分别指定背景色和边框色,指定颜色时支持使用 color 或 ColorStateList

  • QMUIRoundButtonDrawable

  • 使用该 Drawable 可以方便地生成圆角矩形/圆形 Drawable,提供设置背景色、描边大小和颜色、圆角自适应 View 高度等特性。

  • QMUISpanTouchFixTextView

  • 相比 TextView,修正了两个常见问题:

  1. 修正了 TextViewClickableSpan 一起使用时,点击 ClickableSpan 也会触发 TextView 的事件的问题。

  2. 修正了 TextView 默认情况下如果添加了 ClickableSpan 之后就无法把点击事件传递给 TextView 的 Parent 的问题。

  • QMUITabSegment

  • 用于横向多个 Tab 的布局,包含多个特性:

  1. 可以用 xmlQMUITabSegment 提供的 set 方法统一配置文字颜色、icon 位置、是否要下划线等。

  2. 每个 Tab 都可以非常灵活的配置,内容上支持文字和 icon 的显示,icon 支持选中态,支持内容的排版对齐方向设置,支持显示红点,支持插入自定义的 View,支持监听双击事件等。

  3. 可以通过 setupWithViewPager(ViewPager) 方法与 ViewPager 绑定。

  • QMUITipDialog

  • 提供一个浮层展示在屏幕中间,提供了以下两种样式:

  1. 使用 QMUITipDialog.Builder 生成,提供了一个图标和一行文字的样式, 其中图标有 Loading、成功、失败等类型可选。

  2. 使用 QMUITipDialog.CustomBuilder 生成,支持传入自定义的 layoutResId

  • QMUITopBar

  • 通用的顶部 Bar。提供了以下功能:

更多可参考 wiki 文档

  1. 在左侧/右侧添加图片按钮/文字按钮/自定义View。

  2. 设置标题/副标题,且支持设置标题/副标题的水平对齐方式。

  • QMUITopBarLayout

  • QMUITopBar 的包裹类,并代理了 QMUITopBar 的方法。配合 QMUIWindowInsetLayout 使用,可使 QMUITopBar 在支持沉浸式状态栏的界面中顶部延伸到状态栏。

  • QMUIVerticalTextView

  • TextView 的基础上支持文字竖排。

  • QMUITouchableSpan

-继承自 ClickableSpan,支持 normal 态和 press 态时有不同的背景颜色以及字体颜色。建议配合 QMUISpanTouchFixTextView 或其子类使用,便于事件传递的协调。

  • QMUIWindowInsetLayout

  • 配合沉浸式状态栏使用,用于协调子 ViewfitSystemWindows

  • QMUIWrapContentListView

  • 支持高度值为 wrap_contentListView,解决原生 ListView 在设置高度为 wrap_content 时高度计算错误的 bug。

  • QMUIBlockSpaceSpan

  • 通过在段落之间设置该 span,实现段间距的效果。

  • QMUICustomTypefaceSpan

  • 通过在段落之间设置该 span,实现段间距的效果。

  • QMUICustomTypefaceSpan

  • 支持以 Typeface 的方式设置 span 的字体,实现自定义字体的效果。

  • QMUIAlignMiddleImageSpan

  • 继承自 ImageSpan,在此基础上实现让 span 垂直居中的效果。

  • QMUIMarginImageSpan

  • 继承自 QMUIMarginImageSpan,在此基础上支持设置图片的左右间距。

  • QMUITextSizeSpan

  • 支持调整字体大小的 spanAbsoluteSizeSpan 可以调整字体大小,但在中英文混排下由于decent的不同,无法根据具体需求进行底部对齐或者顶部对齐。而 QMUITextSizeSpan 则可以多传一个参数,让你可以根据具体情况来决定偏移值。

  • QMUIStickySectionLayout

  • 支持二级结构的列表的折叠与展开;支持滚动时悬浮当前 section header; 支持在section list 或 section item list 前后添加自定义 View。 更多可参考 wiki 文档。

Helper Classes
  • QMUIColorHelper

  • 颜色处理工具类,按照功能类型来划分,总共包含以下几个特性:

  1. 为一个颜色设置透明度。

  2. 根据指定比例,在两个颜色值之间计算出一个颜色值。

  3. 将颜色值转换为字符串。

  • QMUIDeviceHelper

  • 获取设备信息的工具类,按照功能类型来划分,总共包含以下几个特性:

  1. 判断设备为手机/平板。

  2. 判断设备是否为魅族手机。

  3. 判断当前系统是否为 Flyme 系统。

  4. 判断当前系统是否为 MIUI 系统。

  5. 判断当前是否拥有悬浮窗权限。

  • QMUIDisplayHelper

  • 屏幕相关的工具类,按照功能类型来划分,总共包含以下几个特性:

  1. 方便地获取一个 DisplayMetrics 实例。

  2. 获取屏幕信息,包括屏幕密度、屏幕宽度和高度、状态栏高度、ActionBar 高度等。

  3. 获取设备硬件信息,包括是否有可用摄像头、是否有硬件菜单、是否有网络、SD Card 是否可用、当前选择的国家语言等。

  4. 判断当前是否处于全屏状态,控制进入/退出全屏状态。

  5. dp 与 px 数值的相互转化。

  • QMUIDrawableHelper
  1. 快速绘制一张指定大小、颜色、边框的图片,支持形状为圆角矩形和圆形。

  2. 快速绘制一张带上分隔线或下分隔线的图片。

  3. 快速绘制一张可带圆角的渐变图片。

  4. 将当前图片的颜色换成另一个颜色。

  5. 将两张图片叠加后生成一张新的图片。

  6. 对某个 View 截图生成图片。

  • QMUIPackageHelper

  • 提供简便的方式获取 App 的版本信息,可以单独获取主版本号、次版本号以及修正版本号。

  • QMUIResHelper

  • 封装了更加便捷的方法,用于获取当前 Theme 下的 Attr 值,支持 FloatColorColorStateListDrawableDimen 类型的 Attr

-QMUISpanHelper

  • 提供了方法使得 QMUIMarginImageSpan 能被更便捷地使用。

  • QMUIStatusBarHelper

  • 状态栏相关的工具类,按照功能类型来划分,总共包含以下几个特性:

  1. 快速实现沉浸式状态栏(支持 4.4 以上版本的 MIUIFlyme,以及 5.0 以上版本的其他 Android)。

  2. 快速设置状态栏为黑色或白色字体图标(支持 4.4 以上版本 MIUIFlyme,以及 6.0 以上版本的其他 Android)。

3.提供多个常用的工具方法,如获取状态栏高度、判断当前是否全屏等等。

  • QMUIViewHelper

  • View 工具类,按照功能类型来划分,总共包含以下几个特性:

  1. ImageView 进行处理,可以按比例缩放图片。

  2. View 做背景颜色变化动画,支持多个动画参数。

  3. View 做进退场动画,支持透明度变化和上下位移两种方式。
    提供多个常用的 View 相关工具方法,如对 View 设置单个方向的 padding、从 ViewStub 中获取一个 View、判断 ListView 是否已经滚动到底部等等。

  4. 提供多个常用的 View 相关工具方法,如对 View 设置单个方向的 padding、从 ViewStub 中获取一个 View、判断 ListView 是否已经滚动到底部等等。

开始使用

qmui
1. 引入库

最新的库会上传到 JCenter 仓库上,请确保配置了 JCenter 仓库源,然后直接引用:

implementation ‘com.qmuiteam:qmui:1.2.0’

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)

题外话

我们见过很多技术leader在面试的时候,遇到处于迷茫期的大龄程序员,比面试官年龄都大。这些人有一些共同特征:可能工作了7、8年,还是每天重复给业务部门写代码,工作内容的重复性比较高,没有什么技术含量的工作。问到这些人的职业规划时,他们也没有太多想法。

其实30岁到40岁是一个人职业发展的黄金阶段,一定要在业务范围内的扩张,技术广度和深度提升上有自己的计划,才有助于在职业发展上有持续的发展路径,而不至于停滞不前。

不断奔跑,你就知道学习的意义所在!

注意:我们之前因为秋招收集的二十套一二线互联网公司Android面试真题(含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。)

《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门即可获取!

注意:我们之前因为秋招收集的二十套一二线互联网公司Android面试真题(含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。)

[外链图片转存中…(img-s42xxOiG-1712398006339)]

《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门即可获取!
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/670453
推荐阅读
相关标签
  

闽ICP备14008679号