Android进阶之路Android开发Android开发经验谈

腾讯开源超实用的UI轮子库,我是轮子搬运工

2019-08-28  本文已影响0人  Android_until

QMUI_Android

功能特性

全局 UI 配置

只需要修改一份配置表就可以调整 App 的全局样式,包括组件颜色、导航栏、对话框、列表等。一处修改,全局生效。

丰富的 UI 控件

提供丰富常用的 UI 控件,例如 BottomSheet、Tab、圆角 ImageView、下拉刷新等,使用方便灵活,并且支持自定义控件的样式。

高效的工具方法

提供高效的工具方法,包括设备信息、屏幕信息、键盘管理、状态栏管理等,可以解决各种常见场景并大幅度提升开发效率。

功能列表

  1. 列表样式:使用 QMUIBottomSheet.BottomListSheetBuilder 生成。

  2. 宫格类型:使用 QMUIBottomSheet.BottomGridSheetBuilder 生成。

  1. 展示一行文字。

  2. 在右侧或下方增加一行说明文字。

  3. 在 item 右侧显示一个开关或箭头或自定义的View

  1. MessageDialogBuilder: 消息类型的对话框 Builder。通过它可以生成一个带标题、文本消息、按钮的对话框。

  2. ConfirmMessageDialogBuilder: 带 Checkbox 的消息确认框 Builder。

  3. EditTextDialogBuilder: 带输入框的对话框 Builder。

  4. MenuDialogBuilder: 菜单对话框 Builder。

  5. CheckableDialogBuilder: 单选类型的对话框 Builder。

  6. MultiCheckableDialogBuilder: 多选类型的对话框 Builder。

7.CustomDialogBuilder: 自定义对话框内容区域的 Builder。

  1. AutoResizeDialogBuilder: 随键盘升降自动调整 Dialog 高度的 Builder
  1. 控制子 View 之间的垂直/水平间距。

  2. 控制子 View 的水平对齐方向(左对齐/居中/右对齐)。

  3. 限制子 View 的个数或行数。

  1. 可以设置链接的样式。

  2. 可以设置链接的点击事件。

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

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

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

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

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

  1. 指定圆角的大小。

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

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

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

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

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

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

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

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

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

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

更多可参考 wiki 文档

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

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

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

Helper Classes

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

-QMUISpanHelper

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

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

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

  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'

至此,QMUI 已被引入项目中。

配置主题

把项目的 themeparent 指向 QMUI.Compat,至此,QMUI 可以正常工作。

3. 覆盖组件的默认表现

你可以通过在项目中的 theme 中用 <item name="(name)">(value)</item> 的形式来覆盖 QMUI 组件的默认表现。具体可指定的属性名请参考 @style/QMUI.Compat 中的属性。

1. 引入库

arch 库会依赖 qmui 库, 因此也需要引入 qmui 库

implementation com.qmuiteam:arch:0.3.1

2. 在 Application#onCreate 中初始化

QMUISwipeBackActivityManager.init(this);

最后

如果你看到了这里,觉得文章写得不错就给个赞呗?如果你觉得那里值得改进的,请给我留言。一定会认真查询,修正不足。谢谢。

【附】相关架构及资料

资料免费领取方式:加Q群 Android开发交流群:1018342383

上一篇下一篇

猜你喜欢

热点阅读