赞
踩
一个带 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。提供了以下功能:
更多可参考 wiki 文档
在左侧/右侧添加图片按钮/文字按钮/自定义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
则可以多传一个参数,让你可以根据具体情况来决定偏移值。
QMUIStickySectionLayout
支持二级结构的列表的折叠与展开;支持滚动时悬浮当前 section header; 支持在section list 或 section item list 前后添加自定义 View
。 更多可参考 wiki 文档。
QMUIColorHelper
颜色处理工具类,按照功能类型来划分,总共包含以下几个特性:
为一个颜色设置透明度。
根据指定比例,在两个颜色值之间计算出一个颜色值。
将颜色值转换为字符串。
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
)。
提供多个常用的工具方法,如获取状态栏高度、判断当前是否全屏等等。
QMUIViewHelper
View 工具类,按照功能类型来划分,总共包含以下几个特性:
对 ImageView
进行处理,可以按比例缩放图片。
对 View
做背景颜色变化动画,支持多个动画参数。
对 View
做进退场动画,支持透明度变化和上下位移两种方式。
提供多个常用的 View
相关工具方法,如对 View
设置单个方向的 padding
、从 ViewStub
中获取一个 View
、判断 ListView
是否已经滚动到底部等等。
最新的库会上传到 JCenter 仓库上,请确保配置了 JCenter 仓库源,然后直接引用:
implementation ‘com.qmuiteam:qmui:1.2.0’
至此,QMUI 已被引入项目中。
把项目的 theme
的 parent
指向 QMUI.Compat
,至此,QMUI 可以正常工作。
你可以通过在项目中的 theme
中用 <item name="(name)">(value)</item>
的形式来覆盖 QMUI 组件的默认表现。具体可指定的属性名请参考 @style/QMUI.Compat
中的属性。
学习技术是一条慢长而艰苦的道路,不能靠一时激情,也不是熬几天几夜就能学好的,必须养成平时努力学习的习惯。所以:贵在坚持!
最后如何才能让我们在面试中对答如流呢?
答案当然是平时在工作或者学习中多提升自身实力的啦,那如何才能正确的学习,有方向的学习呢?有没有免费资料可以借鉴?为此我整理了一份Android学习资料路线:
这里是一部分我工作以来以及参与过的大大小小的面试收集总结出来的一套BAT大厂面试资料专题包,主要还是希望大家在如今大环境不好的情况下面试能够顺利一点,希望可以帮助到大家。
好了,今天的分享就到这里,如果你对在面试中遇到的问题,或者刚毕业及工作几年迷茫不知道该如何准备面试并突破现状提升自己,对于自己的未来还不够了解不知道给如何规划。来看看同行们都是如何突破现状,怎么学习的,来吸收他们的面试以及工作经验完善自己的之后的面试计划及职业规划。
最后,祝愿即将跳槽和已经开始求职的大家都能找到一份好的工作!
这些只是整理出来的部分面试题,后续会持续更新,希望通过这些高级面试题能够降低面试Android岗位的门槛,让更多的Android工程师理解Android系统,掌握Android系统。喜欢的话麻烦点击一个喜欢再关注一下
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门,即可获取!
突破现状,怎么学习的,来吸收他们的面试以及工作经验完善自己的之后的面试计划及职业规划。
最后,祝愿即将跳槽和已经开始求职的大家都能找到一份好的工作!
这些只是整理出来的部分面试题,后续会持续更新,希望通过这些高级面试题能够降低面试Android岗位的门槛,让更多的Android工程师理解Android系统,掌握Android系统。喜欢的话麻烦点击一个喜欢再关注一下
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门,即可获取!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。