Android 进阶
lylodlig
这个作者很懒,什么都没留下…
展开
-
Android事件分发机制-------View
当触摸一个View时,首先会调用View的dispatchTouchEvent(MotionEvent event)方法,关乎着事件的分发,所以首先看看这个方法public boolean dispatchTouchEvent(MotionEvent event) { // If the event should be handled by accessibility focu原创 2016-08-06 22:11:11 · 796 阅读 · 0 评论 -
Android实现本地图片选择及预览缩放效果仿春雨医生
在做项目时经常会遇到选择本地图片的需求,以前都是懒得写直接调用系统方法来选择图片,但是这样并不能实现多选效果,最近又遇到了,所以还是写一个demo好了,以后也方便使用。还是首先来看看效果显示的图片使用RecyclerView实现的,利用Glide来加载;下面弹出的图片文件夹效果是采用BottomSheetDialog实现,这里比采用PopupWindow更方便,弹出显示的左边图片是这个原创 2017-03-03 09:03:17 · 4525 阅读 · 1 评论 -
Android MVP模式实现
MVP模式介绍MVP模式是MVC模式的一个演化版本,全称Model View Presenter 。MVP模式的运用越来越多,它有效的降低了View的复杂度,避免了大量的业务逻辑在View中进行处理。MVP模式解除了Model和View的耦合,使得程序有更好的扩展性,可读性以及可测试性,Model和View是通过Presenter来进行通信,通过各自的接口来实现,依赖于抽象而不是具体,所以更加原创 2016-08-23 21:34:23 · 599 阅读 · 0 评论 -
Android中滑动事件冲突的处理方法
滑动是Android中不可缺少的一部分,多个滑动必然会产生冲突,比如我们最常见的是ScrollView中嵌套了ListView,一般做法是计算出ListView的总高度,这样就不用去滑动ListView了。又比如一个ViewPager嵌套Fragment,Fragment里面又有ListView,这原本是有滑动冲突的,但是ViewPager内部去帮我们解决了这种冲突。那如果我们要自己解决冲突又该怎原创 2016-09-06 09:04:00 · 4934 阅读 · 1 评论 -
View的绘制流程
View的绘制是从ViewRoot的performTraversals()开始的,该函数做的执行过程主要是根据之前设置的状态,判断是否重新计算视图大小(measure)、是否重新放置视图的位置(layout)、以及是否重绘(draw),其核心也就是通过判断来选择顺序执行这三个方法中的哪个 private void performTraversals() { ......原创 2016-12-27 15:13:35 · 511 阅读 · 0 评论 -
ItemDecoration详解以及用ItemDecoration实现按字母排序列表
首先看看实现的效果1可以看出要实现上面效果,有三个步骤:1.汉字转化为拼音,并且根据首字母排序2.用ItemDecoration实现字母行的显示3.自定义实现右侧的按字母导航栏当然重点讲讲ItemDecoration的实现。都知道RecyclerView本身都没有分割线,需要分割线都是在item中画一条线或者使用ItemDecoration来实现分割线。在Recyc原创 2016-12-19 09:03:13 · 6577 阅读 · 0 评论 -
自定义LayoutManager的详解及其使用
RecyclerView不断的普及,越来越多的人使用来代替传统的ListView,GridView等,为了跟进时代也要不断的学习RecyclerView的相关知识,下面就来了解一下RecyclerView的LayoutManger。RecyclerRecyclerView内部有一个Recycler,顾名思义它就是一个回收的工具,当定义LayoutManager时,它可以访问到一个Recyc原创 2016-10-20 09:31:09 · 9405 阅读 · 1 评论 -
Android Scroller的用法详解并完成ListView侧滑菜单
Scroller是用于实现View的弹性滑动,在使用View的scrollTo或者scrollBy来进行滑动时,过程是瞬间完成的,这样用户体验相当的不好。这时我们就要使用Scroller来实现这个滑动的过渡效果。 public void smoothScrollTo(int destX, int destY) { int scrollY = getScrollY();原创 2016-09-06 09:02:40 · 1797 阅读 · 0 评论 -
Android事件分发机制---------ViewGroup
当一个Touch事件发生,系统首先把事件传递给当前的Activity,由Activity的dispatchTouchEvent分发事件,源码如下:public boolean dispatchTouchEvent(MotionEvent ev) { if (ev.getAction() == MotionEvent.ACTION_DOWN) { onUs原创 2016-08-08 16:51:23 · 825 阅读 · 5 评论