快速提高UI开发效率的应用框架,
2017-09-11 10:25
369 查看
我们开发过程中,框架是必不可少的部分,一个好的框架,可以帮我们提高开发效率,最近在网络上面看到两个挺好的框架,一个是工具类框架,一个是UI效果框架,在github上面已经开源了,我们可以从里面拿出来一些有用的东西放到我们的应用中,不用每次都去网上去找了。
下面先来介绍UI框架
QMUI Android 的设计目的是用于辅助快速搭建一个具备基本设计还原效果的 Android 项目,同时利用自身提供的丰富控件及兼容处理,让开发者能专注于业务需求而无需耗费精力在基础代码的设计上。不管是新项目的创建,或是已有项目的维护,均可使开发效率和项目质量得到大幅度提升。
官网:http://qmuiteam.com/android
只需要修改一份配置表就可以调整 App 的全局样式,包括组件颜色、导航栏、对话框、列表等。一处修改,全局生效。
提供丰富常用的 UI 控件,例如 BottomSheet、Tab、圆角 ImageView、下拉刷新等,使用方便灵活,并且支持自定义控件的样式。
提供高效的工具方法,包括设备信息、屏幕信息、键盘管理、状态栏管理等,可以解决各种常见场景并大幅度提升开发效率。
请查看官网的功能列表
QMUIAnimationListView使
使
列表样式:使用
宫格类型:使用
QMUICommonListItemView用作通用列表
展示一行文字。
在右侧或下方增加一行说明文字。
在 item 右侧显示一个开关或箭头或自定义的View
QMUIDialog提供了一系列常用的对话框,解决了使用系统默认对话框时在不同 Android 版本上的表现不一致的问题。使用不同的 Builder 来构建不同类型的对话框,这些 Builder 都拥有设置 title 和添加底部按钮的功能,不同的 Builder 特有的作用如下:
Builder
QMUIEmptyView通用的空界面控件,支持显示 loading、主标题和副标题、图片。QMUIFloatLayout类似 CSS 里
控制子
控制子
限制子
QMUIFontFitTextView使
Section 的概念,用来将列表分块。 配合
功能主要是保证在需要多次刷新数据或布局的情况下(
itemView)复用已存在的
可以设置链接的样式。
可以设置链接的点击事件。
QMUILoadingView用于显示 Loading 的
支持在进度条中以文字形式显示进度,支持修改文字的颜色和大小。
可以通过
支持限制进度的最大值。
QMUIPullRefreshLayout下拉刷新控件。支持自定义 RefreshView(表示正在刷新的 View),触发刷新的位置等特性。QMUIQQFaceView
支持显示表情的伪
实现了
支持与
QMUIQQFaceCompiler
指定圆角的大小。
分别指定不同方向的圆角大小。
指定圆角的大小为高度的一半,并跟随高度变化自适应圆角大小。
支持分别指定背景色和边框色,指定颜色时支持使用 color 或
QMUIRoundButtonDrawable使用该
View 高度等特性。QMUISpanTouchFixTextView相比
修正了
修正了
Parent 的问题。
QMUITabSegment用于横向多个
可以用
set 方法统一配置文字颜色、icon 位置、是否要下划线等。
每个
可以通过
QMUITipDialog提供一个浮层展示在屏幕中间,提供了以下两种样式:
使用
使用
QMUITopBar通用的顶部 Bar。提供了以下功能:
在左侧/右侧添加图片按钮/文字按钮/自定义View。
设置标题/副标题,且支持设置标题/副标题的水平对齐方式。
QMUITopBarLayout对
bug。QMUIBlockSpaceSpan通过在段落之间设置该 span,实现段间距的效果。QMUICustomTypefaceSpan支持以
为一个颜色设置透明度。
根据指定比例,在两个颜色值之间计算出一个颜色值。
将颜色值转换为字符串。
QMUIDeviceHelper获取设备信息的工具类,按照功能类型来划分,总共包含以下几个特性:
判断设备为手机/平板。
判断设备是否为魅族手机。
判断当前系统是否为 Flyme 系统。
判断当前系统是否为 MIUI 系统。
判断当前是否拥有悬浮窗权限。
QMUIDisplayHelper屏幕相关的工具类,按照功能类型来划分,总共包含以下几个特性:
方便地获取一个
获取屏幕信息,包括屏幕密度、屏幕宽度和高度、状态栏高度、ActionBar 高度等。
获取设备硬件信息,包括是否有可用摄像头、是否有硬件菜单、是否有网络、SD Card 是否可用、当前选择的国家语言等。
判断当前是否处于全屏状态,控制进入/退出全屏状态。
dp 与 px 数值的相互转化。
QMUIDrawableHelper
快速绘制一张指定大小、颜色、边框的图片,支持形状为圆角矩形和圆形。
快速绘制一张带上分隔线或下分隔线的图片。
快速绘制一张可带圆角的渐变图片。
将当前图片的颜色换成另一个颜色。
将两张图片叠加后生成一张新的图片。
对某个
QMUIPackageHelper提供简便的方式获取 App 的版本信息,可以单独获取主版本号、次版本号以及修正版本号。QMUIResHelper封装了更加便捷的方法,用于获取当前
快速实现沉浸式状态栏(支持 4.4 以上版本的
5.0 以上版本的其他
快速设置状态栏为黑色或白色字体图标(支持 4.4 以上版本
6.0 以上版本的其他
提供多个常用的工具方法,如获取状态栏高度、判断当前是否全屏等等。
QMUIViewHelperView 工具类,按照功能类型来划分,总共包含以下几个特性:
对
对
对
提供多个常用的
使用方法:
最新的库会上传到 JCenter 仓库上,请确保配置了 JCenter 仓库源,然后直接引用:
至此,QMUI 已被引入项目中。
把项目的
可以正常工作。
你可以通过在项目中的
下面先来介绍UI框架
QMUI_Android
QMUI Android 的设计目的是用于辅助快速搭建一个具备基本设计还原效果的 Android 项目,同时利用自身提供的丰富控件及兼容处理,让开发者能专注于业务需求而无需耗费精力在基础代码的设计上。不管是新项目的创建,或是已有项目的维护,均可使开发效率和项目质量得到大幅度提升。官网:http://qmuiteam.com/android
功能特性
全局 UI 配置
只需要修改一份配置表就可以调整 App 的全局样式,包括组件颜色、导航栏、对话框、列表等。一处修改,全局生效。
丰富的 UI 控件
提供丰富常用的 UI 控件,例如 BottomSheet、Tab、圆角 ImageView、下拉刷新等,使用方便灵活,并且支持自定义控件的样式。
高效的工具方法
提供高效的工具方法,包括设备信息、屏幕信息、键盘管理、状态栏管理等,可以解决各种常见场景并大幅度提升开发效率。
功能列表
请查看官网的功能列表QMUIAnimationListView使
ListView支持添加/删除 Item 的动画,支持自定义动画效果。QMUIBottomSheet在
Dialog的基础上重新定制了
show()和
hide()时的动画效果,
使
Dialog在界面底部升起和降下。提供了以下两个面板样式:
列表样式:使用
QMUIBottomSheet.BottomListSheetBuilder生成。
宫格类型:使用
QMUIBottomSheet.BottomGridSheetBuilder生成。
QMUICommonListItemView用作通用列表
QMUIGroupListView里的 Item,也可单独使用。支持以下样式:
展示一行文字。
在右侧或下方增加一行说明文字。
在 item 右侧显示一个开关或箭头或自定义的View
QMUIDialog提供了一系列常用的对话框,解决了使用系统默认对话框时在不同 Android 版本上的表现不一致的问题。使用不同的 Builder 来构建不同类型的对话框,这些 Builder 都拥有设置 title 和添加底部按钮的功能,不同的 Builder 特有的作用如下:
MessageDialogBuilder: 消息类型的对话框 Builder。通过它可以生成一个带标题、文本消息、按钮的对话框。
ConfirmMessageDialogBuilder: 带 Checkbox 的消息确认框 Builder。
EditTextDialogBuilder: 带输入框的对话框 Builder。
MenuDialogBuilder: 菜单对话框 Builder。
CheckableDialogBuilder: 单选类型的对话框 Builder。
MultiCheckableDialogBuilder: 多选类型的对话框 Builder。
CustomDialogBuilder: 自定义对话框内容区域的 Builder。
AutoResizeDialogBuilder: 随键盘升降自动调整
Dialog高度的
Builder
QMUIEmptyView通用的空界面控件,支持显示 loading、主标题和副标题、图片。QMUIFloatLayout类似 CSS 里
float: left的浮动布局,从左到右排列子 View 并自动换行。支持以下特性:
控制子
View之间的垂直/水平间距。
控制子
View的水平对齐方向(左对齐/居中/右对齐)。
限制子
View的个数或行数。
QMUIFontFitTextView使
TextView在宽度固定的情况下,文字多到一行放不下时能缩小文字大小来自适应。QMUIGroupListView通用的列表,常用于 App 的设置界面,注意其父类不是
ListView而是
LinearLayout,所以一般要配合
ScrollView使用。提供了
Section 的概念,用来将列表分块。 配合
QMUIGroupListView.Section,
QMUICommonListItemView和
QMUIGroupListSectionHeaderFooterView使用。QMUIGroupListSectionHeaderFooterView用作通用列表
QMUIGroupListView里每个 Section 的头部或尾部,也可单独使用。QMUIItemViewsAdapter一个带 cache 功能的“列表型数据-View”的适配器,适用于自定义
View需要显示重复单元
ListView的情景,cache
功能主要是保证在需要多次刷新数据或布局的情况下(
ListView或
RecycleView的
itemView)复用已存在的
View。QMUI 用于
QMUITabSegment中
Tab与数据的适配。QMUIKeyboardHelper提供更加便捷的方式针对给定的 EditText 显示/隐藏软键盘,并且提供了工具方法判断键盘是否当前可见。QMUILinkTextView使
TextView能自动识别 URL、电话、邮箱地址,相比
TextView有以下特点:
可以设置链接的样式。
可以设置链接的点击事件。
QMUILoadingView用于显示 Loading 的
View,支持颜色和大小的设置。QMUIObservableScrollView可以监听滚动事件的
ScrollView,并能在滚动回调中获取每次滚动前后的偏移量。QMUIPopup提供一个浮层,支持自定义浮层的内容,支持在指定
View的任一方向旁边展示该浮层,支持自定义浮层出现/消失的动画。QMUIListPopup继承自
QMUIPopup,在
QMUIPopup的基础上,支持显示一个列表。QMUIProgressBar一个进度条控件,通过颜色变化显示进度,支持环形和矩形两种形式,主要特性如下:
支持在进度条中以文字形式显示进度,支持修改文字的颜色和大小。
可以通过
xml属性修改进度背景色,当前进度颜色,进度条尺寸。
支持限制进度的最大值。
QMUIPullRefreshLayout下拉刷新控件。支持自定义 RefreshView(表示正在刷新的 View),触发刷新的位置等特性。QMUIQQFaceView
支持显示表情的伪
TextView(继续自定义 View,而不是真正的
TextView),
实现了
TextView的
maxLine、
ellipsize、
textSize、
textColor等基本功能。
支持与
QMUITouchableSpan配合使用实现内容可点击。
QMUIQQFaceCompiler
QMUIQQFaceView的内容解析器,将文本内容解析成
QMUIQQFaceView想要的数据格式。IQMUIQQFaceManager
QMUIQQFaceView资源管理接口,使用
QMUIQQFaceView必须实现这个接口以提供表情资源。QMUIRadiusImageView提供为图片添加圆角、边框、剪裁到圆形或其他形状等功能。QMUIRoundButton对
Button提供圆角功能,支持以下特性:
指定圆角的大小。
分别指定不同方向的圆角大小。
指定圆角的大小为高度的一半,并跟随高度变化自适应圆角大小。
支持分别指定背景色和边框色,指定颜色时支持使用 color 或
ColorStateList。
QMUIRoundButtonDrawable使用该
Drawable可以方便地生成圆角矩形/圆形
Drawable,提供设置背景色、描边大小和颜色、圆角自适应
View 高度等特性。QMUISpanTouchFixTextView相比
TextView,修正了两个常见问题:
修正了
TextView与
ClickableSpan一起使用时,点击
ClickableSpan也会触发
TextView的事件的问题。
修正了
TextView默认情况下如果添加了
ClickableSpan之后就无法把点击事件传递给
TextView的
Parent 的问题。
QMUITabSegment用于横向多个
Tab的布局,包含多个特性:
可以用
xml或
QMUITabSegment提供的
set 方法统一配置文字颜色、icon 位置、是否要下划线等。
每个
Tab都可以非常灵活的配置,内容上支持文字和 icon 的显示,icon 支持选中态,支持内容的排版对齐方向设置,支持显示红点,支持插入自定义的
View,支持监听双击事件等。
可以通过
setupWithViewPager(ViewPager)方法与
ViewPager绑定。
QMUITipDialog提供一个浮层展示在屏幕中间,提供了以下两种样式:
使用
QMUITipDialog.Builder生成,提供了一个图标和一行文字的样式, 其中图标有 Loading、成功、失败等类型可选。
使用
QMUITipDialog.CustomBuilder生成,支持传入自定义的
layoutResId。
QMUITopBar通用的顶部 Bar。提供了以下功能:
在左侧/右侧添加图片按钮/文字按钮/自定义View。
设置标题/副标题,且支持设置标题/副标题的水平对齐方式。
QMUITopBarLayout对
QMUITopBar的包裹类,并代理了
QMUITopBar的方法。配合
QMUIWindowInsetLayout使用,可使
QMUITopBar在支持沉浸式状态栏的界面中顶部延伸到状态栏。QMUIVerticalTextView在
TextView的基础上支持文字竖排。QMUITouchableSpan继承自
ClickableSpan,支持 normal 态和 press 态时有不同的背景颜色以及字体颜色。建议配合
QMUISpanTouchFixTextView或其子类使用,便于事件传递的协调。QMUIWindowInsetLayout配合沉浸式状态栏使用,用于协调子
View的
fitSystemWindows。QMUIWrapContentListView支持高度值为
wrap_content的
ListView,解决原生
ListView在设置高度为
wrap_content时高度计算错误的
bug。QMUIBlockSpaceSpan通过在段落之间设置该 span,实现段间距的效果。QMUICustomTypefaceSpan支持以
Typeface的方式设置
span的字体,实现自定义字体的效果。QMUIAlignMiddleImageSpan继承自
ImageSpan,在此基础上实现让
span垂直居中的效果。QMUIMarginImageSpan继承自
QMUIMarginImageSpan,在此基础上支持设置图片的左右间距。QMUITextSizeSpan支持调整字体大小的
span。
AbsoluteSizeSpan可以调整字体大小,但在中英文混排下由于decent的不同,无法根据具体需求进行底部对齐或者顶部对齐。而
QMUITextSizeSpan则可以多传一个参数,让你可以根据具体情况来决定偏移值。颜色处理工具类,按照功能类型来划分,总共包含以下几个特性:
为一个颜色设置透明度。
根据指定比例,在两个颜色值之间计算出一个颜色值。
将颜色值转换为字符串。
QMUIDeviceHelper获取设备信息的工具类,按照功能类型来划分,总共包含以下几个特性:
判断设备为手机/平板。
判断设备是否为魅族手机。
判断当前系统是否为 Flyme 系统。
判断当前系统是否为 MIUI 系统。
判断当前是否拥有悬浮窗权限。
QMUIDisplayHelper屏幕相关的工具类,按照功能类型来划分,总共包含以下几个特性:
方便地获取一个
DisplayMetrics实例。
获取屏幕信息,包括屏幕密度、屏幕宽度和高度、状态栏高度、ActionBar 高度等。
获取设备硬件信息,包括是否有可用摄像头、是否有硬件菜单、是否有网络、SD Card 是否可用、当前选择的国家语言等。
判断当前是否处于全屏状态,控制进入/退出全屏状态。
dp 与 px 数值的相互转化。
QMUIDrawableHelper
快速绘制一张指定大小、颜色、边框的图片,支持形状为圆角矩形和圆形。
快速绘制一张带上分隔线或下分隔线的图片。
快速绘制一张可带圆角的渐变图片。
将当前图片的颜色换成另一个颜色。
将两张图片叠加后生成一张新的图片。
对某个
View截图生成图片。
QMUIPackageHelper提供简便的方式获取 App 的版本信息,可以单独获取主版本号、次版本号以及修正版本号。QMUIResHelper封装了更加便捷的方法,用于获取当前
Theme下的
Attr值,支持
Float、
Color、
ColorStateList、
Drawable和
Dimen类型的
Attr。QMUISpanHelper提供了方法使得
QMUIMarginImageSpan能被更便捷地使用。QMUIStatusBarHelper状态栏相关的工具类,按照功能类型来划分,总共包含以下几个特性:
快速实现沉浸式状态栏(支持 4.4 以上版本的
MIUI和
Flyme,以及
5.0 以上版本的其他
Android)。
快速设置状态栏为黑色或白色字体图标(支持 4.4 以上版本
MIUI和
Flyme,以及
6.0 以上版本的其他
Android)。
提供多个常用的工具方法,如获取状态栏高度、判断当前是否全屏等等。
QMUIViewHelperView 工具类,按照功能类型来划分,总共包含以下几个特性:
对
ImageView进行处理,可以按比例缩放图片。
对
View做背景颜色变化动画,支持多个动画参数。
对
View做进退场动画,支持透明度变化和上下位移两种方式。
提供多个常用的
View相关工具方法,如对
View设置单个方向的
padding、从
ViewStub中获取一个
View、判断
ListView是否已经滚动到底部等等
使用方法:
1. 引入库
最新的库会上传到 JCenter 仓库上,请确保配置了 JCenter 仓库源,然后直接引用:compile 'com.qmuiteam:qmui:1.0.2'
至此,QMUI 已被引入项目中。
2. 配置主题
把项目的 theme的
parent指向
QMUI.Compat或
QMUI,至此,QMUI
可以正常工作。
3. 覆盖组件的默认表现
你可以通过在项目中的 theme中用
<item name="(name)">(value)</item>的形式来覆盖 QMUI 组件的默认表现。具体可指定的属性名请参考
@style/QMUI.Compat或
@style/QMUI中的属性。
相关文章推荐
- J2EE快速开发框架Wabacus 3.4发布,开发效率提高5倍以上
- JavaEE快速开发框架Wabacus 3.5发布,开发效率提高5倍以上
- QMUI Android UI 框架正式发布、提高 Android UI 开发效率的 UI 库
- iOS快速开发框架Bee-Framework应用和解析 (四,完结)UI容器,UICell, UILayout(XML + CSS)
- iOS 快速创建常用UI,使代码更加整洁并且提高开发效率<1>
- paip.提高效率---微信 手机app快速开发平台—微网络撬动大市场
- [转] 用 CodeIgniter 开发动态 Web 站点 - 利用 MVC 框架和 CRUD 提高效率
- 提高iOS开发效率的第三方框架等--不断更新中。。。
- .NET快速信息化系统开发框架 V3.2->WinForm版本新增新的角色授权管理界面效率更高、更规范
- 从开发框架提高开发效率说起
- C#开发的WEB开发的简单框架 节省开发信息管理系统时间 提高开发效率
- 【转】从开发框架提高开发效率说起
- QMUI Android 致力于提高项目 UI 开发效率的解决方案
- [原创]ASP Snail - WEB应用快速开发框架
- Parse:App开发必备 让应用开发效率提高上百倍
- RDIFramework.NET ━ .NET快速信息化系统开发框架 V3.2->Web版本新增新的角色授权管理界面效率更高、更规范
- 提高android应用ui运行效率
- 使用vs2012快速提高开发效率的代码
- dwz4j企业级Java Web快速开发框架(Mybatis + SpringMVC) + jUI整合应用
- 使用 CodeIgniter 框架快速开发 PHP 应用(二)