安卓文件管理器-GridView实现

本文介绍了基于GridView实现的安卓文件管理器,探讨了静默安装和卸载应用、焦点位置还原、存储介质拔出处理等细节。还分享了Adapter部分的代码,并强调了用户体验和优化的重要性。
摘要由CSDN通过智能技术生成

  前段时间做了个九宫格文件管理器(GridView实现,1920*1080分辨率,定制Android,目前只在MTK和MSTAR平台上测试及完善过),由于此工程为公司项目中的子项目,代码就不公开了(不过,实现不难,以下只提供主要代码处理和实现考虑情况)
  

  • /storage为根路径

      这里写图片描述

  • 静默安装应用(过程中会有类ProgressBar滚动直到完成操作或操作失败。静默安装过程放在线程中以防止UI卡顿或者因为权限等原因造成ANR使进程被Kill(原生安卓只有在极端情况下才会kill进程,相关源码:ActivityManagerService.java中管理Activity的代码))

      这里写图片描述
      

  • 静默卸载应用(同上)

      这里写图片描述
      
    这里写图片描述

      
      以上仅供参考学习!其实文件管理器实现起来很简单,只不过过多的细节需要进行考虑而已①。还是得一边做一边在脑海中与原生的文件管理器模拟对比,逐渐完善。
      ①细节包括:
        1. 文件管理器中安装应用后,返回到文件管理器时焦点位置是否要记录还原,如果不还原文件过多时可能要翻好多下才能找到安装的apk文件。
        2.在正在使用的存储介质拔出时,提示并只能退出。提示控件对话框(以下叫dialog)截获onKeyDown事件致使点一次返回响应两次返回操作的问题:先dialog消失,接着Activity响应back事件,也就是事件冲突和截获,可以了解一下onKeyDown返回值代表的意思。而真实的路径已经不存在,所以即使按返回,dialog要消失且程序要有“待机”界面或不友好点直接退出。
        3.文件或文件夹可能会有权限问题要处理,在清单文件AndroidManifest.xml中配置android:sharedUserId=”android.uid.system”让应用程序成为系统应用,但最好的做法还是区分文件和文件夹进行相同的提示,但给予不同的操作。
        其实,一分析,有很多的…还是要以用户的角度去做东西。
      
      好了,直接上代码,在这里只放上写的Demo的Adaper部分供大家学习:
      
    BaseAdapter.java


public class GridAdapter extends BaseAdapter {
   
    private LayoutInflater inflater;
    private Bitmap directory, file_notinstall, file_hasinstall,backBitmap;
    private ArrayList<String> names = null;
    private ArrayList<String> paths = null;
    private ArrayL
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值