腾讯开源的Android UI框架——QMUI Android
各位同学,早上好,我是你们的老朋友D_clock爱吃葱花,前些天忙着发版本,最近也在看各种各样的新知识,有好多东西想写啊啊啊啊啊。嗯,先冷静捋一下,卖个关子。扯回正题,今天继续为大家推荐一个Github上的开源框架——QMUI Android,出品自腾讯广州研发部QMUI团队。
https://github.com/QMUI
如果是做Web开发的同学,应该会很熟悉QMUI所开源的QMUI Web框架,我之前也是因为弄一个Web页的问题,知道了QMUI Web,然后才了解到QMUI这个团队,前段时间发现他们新开源了QMUI Android这个框架,觉得还蛮接地气的,索性一直暗中观察,今天就来简单介绍下它。并且据官网介绍,目前该项目已经支持了QQ邮箱和微信读书。
QMUI Android是什么?
以下是官方在Github的README中给出的介绍:
QMUI Android的设计目的是用于辅助快速搭建一个具备基本设计还原效果的Android项目,同时利用自身提供的丰富控件及兼容处理,让开发者能专注于业务需求而无需耗费精力在基础代码的设计上。不管是新项目的创建,或是已有项目的维护,均可使开发效率和项目质量得到大幅度提升。
简单的说,它就是一个封装完善的Android UI组件库,使用它可以解决你很多日常开发需求的UI问题。目前,它主要包含以下两个部分:
UI控件:BottomSheet、Tab、圆角 ImageView、下拉刷新等,使用方便灵活,并且支持自定义控件的样式;
常用工具类:如设备信息、屏幕信息、键盘管理、状态栏管理等;
引入工程中使用也非常简单,参照官方配置文档的手把手教学即可Happy Coding!
官方配置文档:http://qmuiteam.com/android/page/start.html
经过一小段时间的体验之后,我总结了以下几个亮点分享一下。
常见UI效果封装
QMUI Android中提供了很多常见使用的UI效果封装,比如下面这些:
1、QMUIDialog:它提供了一系列常用的对话框,解决了使用系统默认对话框时在不同 Android 版本上的表现不一致的问题。
并且可以使用不同的Builder来构建不同类型的对话框,这些Builder都拥有设置title和添加底部按钮的功能。
2、QMUIGroupListView:通用的列表,常用于App的设置界面,由于它的父类不是ListView而是LinearLayout,所以,需要配合ScrollView使用。并且它还提供了一个Section的概念对列表进行分块,按照官方的介绍可以配合其所提供的QMUIGroupListView.Section, QMUICommonListItemView、QMUIGroupListSectionHeaderFooterView使用。
3、QMUIFloatLayout:类似CSS中的浮动布局,从左到右排列子View并自动换行,同时还提供控制子View之间的垂直/水平间距和水平对齐方向、限制子View个数或行数等特性。
4、除了以上一些UI效果之外,还有诸如进度条效果(QMUIProgressBar)、下拉刷新(QMUIPullRefreshLayout)、类似于PopupWindow的悬浮弹层(QMUIPopup、QMUIListPopup)、加载中的等待效果(QMUILoadingView)等等还有好多。
增强富文本
QMUI Android中提供了很多自定义的Span来帮你解决各种富文本的问题,如:QMUIBlockSpaceSpan、QMUICustomTypefaceSpan、QMUIAlignMiddleImageSpan、QMUIMarginImageSpan、QMUITextSizeSpan、QMUITouchableSpan等。
还有为文字和表情混排提供支持的QMUIQQFaceView、QMUIQQFaceCompiler、IQMUIQQFaceManager,而且相比系统自带的ImageSpan实现,QMUI还做了一定的优化工作,具体可以对比效果图中的expend time(因为录制gif图所以没滑动太快,正常情况下,这个性能差距会更大)。
QMUIQQFaceView实现效果 | QMUIQQFaceView和默认ImageSpan性能比对 |
---|---|
并且,还提供了支持垂直排版文字的QMUIVerticalTextView,以及QMUISpanTouchFixTextView修复了原生TextView和ClickableSpan一起使用时的一些的bug。
QMUIVerticalTextView | QMUISpanTouchFixTextView |
---|---|
简直不要太爽。
工具类
工具类的话,也有不少,官方给的文档言简意赅,给大家截图好了。
这些工具类,在平常开发中都是很实用的。
不足
介绍完以上几大亮点,最后再说点个人觉得唯一的不足之处,就是如果QMUI Android的文档能像QMUI Web一样完善,那就更好了。
期待
总的来说,QMUI Android的发展还是蛮值得继续期待,哦,对了,iOS也有对应的QMUI iOS哦。
不知道后面会不会出现QMUI RN?QMUI 小程序?哈哈,随意脑洞下一下。觉得文章不错的同学,可以帮忙转发、点赞支持哦。
之前的精彩文章
腾讯开源的Android UI框架——QMUI Android的更多相关文章
- Android UI学习 - ListView (android.R.layout.simple_list_item_1是个什么东西)
Android UI学习 - ListView -- :: 标签:Android UI 移动开发 ListView ListActivity 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始 ...
- Android UI设计系统-android selector 开始自定义样式
Selector的结构描述: <?xml version="1.0" encoding="utf-8"?> <selector xmlns:a ...
- Android UI框架基本概念
Activity:基本的页面单元,Activity包含一个Window,window上可以绘制各种view View:最基本的UI组件,表示屏幕上的一个矩形区域: Window:表示顶层窗口,管理界面 ...
- [Android UI] Activity Maintheme (Android 解决程序启动时的黑屏问题)
<style name="MainTheme" parent="@android:style/Theme"> <item name=" ...
- 各种Android UI开源框架 开源库
各种Android UI开源框架 开源库 转 https://blog.csdn.net/zhangdi_gdk2016/article/details/84643668 自己总结的Android开源 ...
- Android UI Design
Ref:直接拿来用!10款实用Android UI工具 Ref:Android UI设计资源 Ref:Android酷炫实用的开源框架(UI框架) Ref:Android UI 组件 Ref:Andr ...
- 详解 “Android UI”设计官方教程
我们曾经给大家一个<MeeGo移动终端设备开发UI设计基础教程>,同时很多朋友都在寻找Android UI开发的教程,我们从Android的官方开发者博客找了一份幻灯片,介绍了一些Andr ...
- 【推荐】HTML5 UI框架 推荐
笔者的男装网店:http://shop101289731.taobao.com .冬装,在寒冷的冬季温暖你.新品上市,环境选购 最近自己瞎搞一下web网页的东西.想开发先找资源. 整理了一下HTML5 ...
- 十二、Android UI开发专题(转)
http://dev.10086.cn/cmdn/bbs/viewthread.php?tid=18736&page=1#pid89255Android UI开发专题(一) 之界面设计 近期很 ...
随机推荐
- javamail+postfix发送邮件
由于在做项目时,需要用到邮箱服务.但是不想使用163,qq的,所以就自己搭一个邮箱服务器. 在搜索资料发现postfix是个不错的选择,于是就开始配置了. 这是我搜到的最全的的教程了:http://w ...
- 数值和字符串相互转换(C++ 数据类型转换技巧)
类型转换是将一种类型的值映射为另一种类型的值.进行数据类型的转换. 是在实际代码编写中经常遇到的问题,特别是字符串和其他类型的转换. 1.将字符串转换为整数 (1).转换函数// 双精度函数doubl ...
- Spring 框架的 applicationContext.xml 配置文件
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...
- 2015-03-22——js常用的String方法
String string.charAt(pos); //返回字符串中pos位置处的字符.如果pos小于0或大于等于string.length返回空字符串.模拟实现:Function.prototy ...
- 我的Android进阶之旅------>Java全角半角的转换方法
一中文全角和半角输入的区别 1全角指一个字符占用两个标准字符位置 2半角指一字符占用一个标准的字符位置 3全角与半角各在什么情况下使用 4全角和半角的区别 5关于全角和半角 6全角与半角比较 二转半角 ...
- Windows下QT MySQL驱动编译
在Windows环境中使用Qt进行关于MySQL数据库的操作时,会出现如下问题: QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: availa ...
- Myeclipse中文乱码解决方式
我们刚刚安装的Myeclipse有可能使用的是GBK的编码方式,而通常我们的程序都是使用的是UTF-8的编码方式,所以当我们导入一个项目的时候,会产生乱码,解决方式如下: 一.将整个project设置 ...
- 使用哈工大LTP进行句法分析
作者注:本教程旨在对哈工大LTP在github上的LTP4J(LTP的java版本)教程的补充,请结合以下参考网站一起食用. 参考网站: [1]哈工大语言技术平台云官网--LTP使用文档 http:/ ...
- php RFC兼容的电子邮件地址验证
php中,进行RFC兼容的电子邮件地址验证的方法,有需要的朋友参考下吧. 分享一个可以验证RFC兼容的电子邮件地址的代码,支持RFC1123,2396,3696,4291,4343,5321等的验证. ...
- go——切片(二)
切片是一种数据结构,这种数据结构便于使用和管理数据集合. 切片是围绕动态数组的概念构建的,可以按需自动增长和缩小. 切片的动态增长是通过内置函数append来实现的.这个函数可以快速且高效地增长切片. ...