Android自定义控件和UI
文章平均质量分 84
wzhseu
这个作者很懒,什么都没留下…
展开
-
SwipeRefreshLayout+RecyclerView 完成下拉刷新,上拉加载更多的自定义控件,简单好用
下拉刷新,上拉加载更多在许多应用中都频频用到,特别是需要分页加载数据时.之前在项目中经常用到的是网上非常普遍的PullToRefreshLayout.该框架比较好用,不过是比较旧了.就想着重新找一个控件.因为现在android 5.0应用的已经比较多了,所以就想做一个和知乎效果差不多的效果. 谷歌官方为我们提供一个SwipeRefreshLayout的刷新控件,效果不错,不过仅仅有下原创 2016-12-06 14:18:31 · 958 阅读 · 0 评论 -
Material Design入门(下)
除了Google官方提供的组件,Material Design另一个非常重要的特性是它的视图效果,这些效果和官方的组件一起,为安卓app的交互提供了更好的素材1.Elevation:高度 先介绍从Android L(5.0)以后谷歌引入的一个非常重要的概念:高度和阴影,就是将z轴引入视图的展现,让界面不再是呆板的二维视图,更真实和立体,具有视觉上的高度层次和阴影投射。 ...原创 2016-09-24 21:03:49 · 537 阅读 · 0 评论 -
对事件分发的探讨
在开发中,我们经常要完成一些稍复杂的功能和交互。而这些交互往往不是触发型的,仅仅用各种动画是无法完成的,这时候就需要掌握View的一个核心知识:事件分发机制。这个比较重要也比较难,但实际上我们基本上每天都在直接或间接的跟它打交道。 1.点击事件的传递 事件的产生来源于我们的手指在屏幕上的动作。典型的事件类型:按下、移动、松开,以及实时产生的坐标值原创 2016-09-24 20:08:57 · 564 阅读 · 0 评论 -
Material Design入门(上)
Material Design是Google I/O 2014发布推行的,旨在统一Android Mobile、Android Table、Desktop Chrome 等全平台设计语言规范。具有比较浓重的程序感的设计风格,也在不断的完善。当然作为开发的我最直观的感受就是它提供的一系列组件及交互动画。0.引入项目中使用 因为MD是在Android 5.0后全面推出的,因此为了兼容原创 2016-09-24 20:58:17 · 576 阅读 · 0 评论 -
对于流式布局的研究和一点心得
流式布局1,可以看作会自动换行的线性布局分情况换行细节问题:子View的排列2,具体实现(重写onMeasure()) 1,获取当前流式布局的测量模式和测量尺寸(需要计算子View的,要减去padding) 2.拿到当前流式布局的每一个子View(遍历),如果不可见,就进行下一次循环 利用合成规范其大小,不能超过父View的大小原创 2016-09-24 20:07:44 · 3574 阅读 · 0 评论 -
App应用字体大小保持固定以及关于Configuration的变化
前言安卓4.0之后系统设置->显示里面新增了字体大小设置的选项.看下你自己的安卓机,如果你将字体大小从小号一直增大到特大号,有没有发现某些安装的app里面的字体大小也随着变化了?这样可能是便于了阅读,但是app里面本来能显示完全的内容可能因此就只显示了部分.实际上,我们可以看一下QQ、淘宝等大厂的应用,里面的字体大小并不会随着系统设置的大小而变化.初始解决方法网上早已给出了解决办法,在Applica原创 2017-12-21 18:18:41 · 3032 阅读 · 0 评论 -
安卓中短信验证码倒计时的几种方式
发送短信验证码后,一般在界面上都会有一个倒计时的显示.在安卓中,实现类似的倒计时有多种方式,当然背后的基本原理都是设定一个初始值,然后每过一定的间隔时间执行操作.用安卓自带的CountDownTimer实现这是最简洁的实现方式.安卓提供了一个CountDownTimer类用于倒计时功能.其使用方法在注释里面写的已经比较清楚了.记时开启后禁掉控件的点击事件,倒计时结束后再开启.防止重复点击导致多个任务原创 2017-12-21 15:17:22 · 1149 阅读 · 0 评论 -
用layer-list自定义drawable图形
在日常开发中会碰到有些情况,背景图不算很复杂,但是用单纯的shape无法满足需求,特别是层叠的样式,其实不需要自定义控件,或者让UI切图.用layer-list创建一个drawable图形就可以了1.layer-list的概念其实就和新建drawable资源中的shape一样,都是root-element.其原理类似RelativeLayout,也就是一层层的叠加.这也就是图层的概念,每一个图层用i原创 2017-12-12 16:22:21 · 10617 阅读 · 0 评论 -
View的绘制过程
1 测量1.1 View的测量 通过查看源码得知,在View中有一个measure方法,注释写的很清楚:系统在测量一个控件的大小的时候会调用该方法。而实际上measure方法内部调用的onMeasure方法才是真正完成了View的测量工作。原创 2016-09-24 20:05:57 · 468 阅读 · 0 评论 -
界面适配华为手机的虚拟按键的解决方案
一、概述在项目中,测试发现在一些华为手机的屏幕适配上出现了问题,主要是因为华为Mate等一些系列的手机有一个虚拟按键的设计.当这些虚拟按键由用户手势滑出,或默认显示的话,就会遮挡我们本身的应用布局.比如欢迎界面过后是四个Fragment,那么底部的四个tab就会被虚拟的导航栏遮住,非常难看.当然,欢迎页的图片适配也同样会出现问题. Google后得出第一个问题的解决方案.第二个图片的问题则用自己摸原创 2017-02-27 15:50:29 · 30048 阅读 · 18 评论 -
反编译实现夜间模式平滑换肤
日间模式和夜间模式的换皮肤在很早期的一些APP中就已经有实践了。用过的众多APP中,知乎的夜间模式换肤算是体验感非常好的。两年前反编译知乎的app学习了人家的实现思路,效果不错。当然最新版的知乎应用上线后也大面积进行了混淆,捋源码会困难一些。本篇基于未混淆的旧版知乎。早期简单的一种实现方法换肤的主要工作就是切换颜色,之前我经手的一个项目中也有该功能,做法无非是资源文件中定义了两套the...原创 2018-08-23 23:38:20 · 532 阅读 · 0 评论