melonl吧 关注:96贴子:2,323

闲着没事做了个文件管理器练手

只看楼主收藏回复

分享一下我在做的过程中遇到问题,顺便做下记录,我大艾利欧镇楼


IP属地:广东来自Android客户端1楼2016-06-20 16:58回复
    IP属地:广东来自Android客户端2楼2016-06-20 17:03
    收起回复
      目前只实现了简单的文件访问和大小查看,其他的什么复制 移动 删除 等都还没来得及写


      IP属地:广东来自Android客户端3楼2016-06-20 17:04
      回复
        还有,图片是扒CM13文件管理器的


        IP属地:广东来自Android客户端4楼2016-06-20 17:05
        回复
          直接看代码吧,其实代码很简单,没啥技术含量。xml里我只用了一个TextView来显示当前路径,然后用一个ListView作为列表,再用LinearLayout包裹。ListView的适配器是用我自己重写的ArrayAdapter,把File对象当做内容,作为FileAdapter


          IP属地:广东来自Android客户端5楼2016-06-20 17:10
          回复
            FileAdapter里的getView方法我是直接用动态布局写的,本来觉得好像没办法用常用的ViewHolder模式,但是后来还是被我优化了,嘛,本来没优化前效率也不低,现在优化后肯定更快了,源码自己看吧


            IP属地:广东来自Android客户端6楼2016-06-20 17:12
            回复
              有个比较重要的地方就是这个文件大小的计算,Java里没提供直接计算的方法,一开始在网上找到一个方法就是用IO流的方法,new一个 inputstream然后用available方法获取总的可读字节,在文件不多的时候还算过得去,但是文件一多,要检测有几千个文件的文件夹大小的时候就会直接报错,抛个异常,后来我又在网上找到一种方法,用File.length(),也能获取文件大小,而且效率高很多,于是果断用了。文件夹的大小检测用了递归,自己可以看下源码


              IP属地:广东来自Android客户端7楼2016-06-20 17:19
              回复
                就这样,这就是这两天搞得,说实话拿项目实战了之后对于ListView的使用得心应手多了


                IP属地:广东来自Android客户端8楼2016-06-20 17:21
                回复
                  写了个关于界面,个人挺喜欢这样的设计


                  IP属地:广东来自Android客户端9楼2016-06-23 22:21
                  回复
                    然后打算写个给外部程序调用选文件的功能,考虑了一下,于是把原来写在MainActivity里所有关于文件操作的函数分离了出来写成一个工具类,FileOperation类,全部方法写成静态方法方便调用


                    IP属地:广东来自Android客户端10楼2016-06-23 22:24
                    回复
                      刷了cm13后继续开发,发现软件竟然FC了,想了一下,大概是6.0新的权限机制导致的,于是百度了一下,适配6.0还真麻烦..


                      IP属地:广东来自Android客户端11楼2016-06-23 22:26
                      回复
                        刷个机内置卡被格了,源码啥也没了,只剩下网盘里那个半成品的源码只好重新写了


                        IP属地:广东来自Android客户端12楼2016-06-30 20:48
                        回复
                          楼主要仿re了


                          来自Android客户端16楼2016-08-15 14:05
                          收起回复
                            换了文件夹图标,貌似颜色不对,下次再找另一套吧。。另外就是适配了4.4的状态栏,看起来漂亮吧,说实话在手机上用aide开发就是坑。。


                            IP属地:广东来自Android客户端17楼2016-09-07 23:17
                            回复