hpulzl / LZL_ImageLoader

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

2016-01-07
一、这节主要学习下bitmap的高效加载和cache存储的策略
1.1 bitmap的高效加载。
----|bitmap的加载图片的四种方式,decodeFile、decodeResource、decodeStream
     decodeByteArray.
----|使用bitmapFactory.options方法进行图片的缩放。
      图片缩放的策略是 采用inSampleSize(采样率)来设置缩放的比例大小。
      以下是具体的实现
二、ImageLoader的实现
图片的高效缓存类。
 * 主要通过LruCache内存缓存和DiskLruCache磁盘缓存来工作。
 * 该类的实现**:
  通过loadBitmap方法来分别从缓存、磁盘和网络中加载图片(这里是一层一层来判断的,
 * 如果缓存中有这个图片程序变不再向下执行)。
 * 步骤:
 * 1、ImageLoader构造方法,初始化LruCache和DiskLruCache类。
 * 2、分别实现LruCache和DiskLruCache的增加、删除、查找方法。
2016-01-12
《学习Android开发艺术探索》----View的滑动冲突
//今天来学习一下View的滑动冲突,主要从滑动冲突的产生原因和滑动冲突的解决方案出发。
View滑动冲突产生的三个冲突场景。
场景1、外部View左右滑动,内部View上下滑动
场景2、外部View上下滑动,内部View也上下滑动
场景3、场景1和场景2之间的混合滑动。
----------------------------------
场景1和场景2都是比较常见的页面布局。因此解决这种滑动冲突十分必要
据我现在的了解,场景1现在可以使用ViewPager+Fragment来避免这种滑动的冲突。
场景2这种布局,我现在在写的项目中使用了NestedScrollView+RecyclerView这种布局方式,
也没有遇到这种冲突的情况。
所以,我想说的是,如果可以避免这些冲突那就尽量的去绕开这些冲突;如果避免不了滑动冲突,
那么我们可以借鉴以下的解决滑动冲突的思路,来解决我们的问题。
---------------------------------场景1---------------------------------------
首先来构造一个场景1的滑动冲突,并给出解决思路(这些例子来自于Android开发艺术探索)。
1 场景1的滑动冲突处理规则
    场景1是一个简单的滑动冲突,外部View是左右滑动,内部View上下滑动。
    当用户上下滑动时,我们希望内部View来处理事件;当用户左右滑动时,我们希望外部View来处理事件。
    因此,我们可以通过判断用户的手势滑动方向,来决定是哪个View来处理事件。
	1.1外部拦截方法:
    ----|事件拦截与处理
	1.2内部拦截方法:
	----|内部拦截方法,重写内部ListView,并修改其dispatchTouchEvent方法中的父容器的拦截逻辑,
	让父容器拦截ACTION_MOVE和ACTION_UP事件。
  
  


About


Languages

Language:Java 100.0%