-
这个文件过滤方法没有处理大写文件名,需要修复一下,还有在测试的是,文件可能大小未0K,这样的图片也可以过滤掉,所以我是这么处理的 //这个文件夹下面可能有其它文件类型,所以要过滤一下 if (filename.toLowerCase().endsWith("jpg") || filename.toLowerCase().endsWith("png") || filename.toLowerCase().endsWith("jpeg")) { File tempImageFile = new File(dir,filename); //这里过滤因为下载出错的图片文件,一般大小是0K if (tempImageFile.exists() && tempImageFile.isFile() && tempImageFile.length() > 0) { tempImageFile = null; return true; }else{ tempImageFile = null; return false; } } return false;查看全部
-
记得加android.permission.READ_EXTERNAL_STORAGE 这个权限查看全部
-
区域显示变亮查看全部
-
图片加载的基本要求查看全部
-
利用信号量控制任务队列 1.根据目前的逻辑,拿到一个task就会加入到taskQueue中,然后立即会sendMessage()给mPoolThreadHandler,它会将task加入到自己的任务队列中执行。(如图) 这样做的结果是taskQzone中永远只有一个任务,不能体现任务队列的概念。 2.修改——使用信号量 (1)任务队列mTaskQueue和线程池mThreadPool一定要分清楚 (2)当获得一个Task之后,会调用addTasks(Runnable)将其加入到任务队列mTaskQueue中,注意此时不会执行 它会立即sendMessage给mPoolThreadHandler,线程池将其加入到自己的任务队列中(注意这时后台线程池的),然后执行 mThreadPool.execute(getTask()); (3)注意,执行过程是个耗时操作,执行过程中,当前线程会获取信号量 mSemaphoreThreadPool.acquire(); (4)假设当前线程池中指定为3个线程数,那么就会有另外两个也会这么执行 如果此时又有一个也要执行,但是信号量已经没了,就会阻塞。 (5)每个task执行完之后会释放信号量 mSemaphoreThreadPool.release(); 这样才能保证第四个task继续执行 3.不知道这么理解是不是对的.....真TM faint!查看全部
-
性能优化查看全部
-
希望能把图片显示也讲解下,拖动、手势放大和缩小。查看全部
-
后台轮训线程查看全部
-
如何实现目标查看全部
-
仿微信图片加载器 目标 1.尽可能避免内存溢出。 2. 用户操作UI控件必须充分流畅 3. 用户预期显示的图片必须尽可能的快(图片加载策略的选择 FIFO LIFO)查看全部
-
关于图片加载和缓存查看全部
-
后台轮询线程的实现查看全部
-
加载图片的过程查看全部
-
图片加载的三个目标查看全部
-
LinkedList: 一:LinkedList可以从头部和尾部取数据。 二:LinkedList内部采用的是链表,不需要连续的内存。查看全部
举报
0/150
提交
取消