android文件选择器组件

demo效果

FileSelector.gif

GitHub上的源码

介绍

FileSelectorView 是自定义的文件选择器,用户在此基础上可自定义文件选择器风格。

功能
  • 切换目录
  • 获取路径
  • 文件过滤
  • 文件排序
  • 自定义文件图标和设置大小
  • 设置文件名文字的大小、颜色
  • 监听选择的文件
使用

FileSelectorView 使用简单,只需将其加入到布局文件即可,无其他使用限制。
对于Android Studio用户,可添加:

compile 'com.hz.android.fileselectorview:library:1.3'
  • 布局文件
<android.support.constraint.ConstraintLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >
......
    <com.hz.android.fileselector.FileSelectorView
        android:id="@+id/file_selector_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
......

</android.support.constraint.ConstraintLayout   

  • 代码中
......

    //切换目录
    fileSelectorView.setCurrentDirectory(new File(Environment.getExternalStorageDirectory(), "Download"));
    //设置文件过滤
    fileSelectorView.setFileExtensionForFileFilter(Arrays.asList("shp", "txt"));
    //自定义文件图标
    fileSelectorView.setFileIconFactory(new FileIconCreator() {
        public Drawable getIcon(File file) {
            if (file == null) {
                return getResources().getDrawable(R.drawable.rotating);
            } else {
                return getResources().getDrawable(R.drawable.layers3);
            }
        }
    });

    fileSelectorView.setTextSize(30);//设置文字大小
    fileSelectorView.setTextColor(Color.GREEN); //设置文字颜色
    fileSelectorView.setIconSize(200); //设置图标大小也就是设置放置图标的imageView的大小

    //设置选择文件的监听
    fileSelectorView.setFileSelectedListener(new FileSelectorView.OnFileSelectedListener() {
        @Override
        public void onSelected(File selectedFile) {
            Toast.makeText(MainActivity.this, "" + selectedFile.getAbsolutePath(), Toast.LENGTH_SHORT).show();
        }
      @Override
        public void onFilePathChanged(File file) {
            curPathTextView.setText(file.getAbsolutePath());
        }
    });
    
    //设置文件排序
    fileSelectorView.setFileSortComparator(new FileSelectorView.FileAscSortComparator());
}
    
    ......


注意

读取文件路径需要涉及到用户的许可:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,242评论 25 708
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,914评论 18 139
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,796评论 1 92
  • 我们今天的洛阳,已经初步改变了她以往的沿着中州路和洛河东西走向的狭长分布形态,洛河南岸的洛龙区已经兴建起来了,并且...
    山樵一阅读 1,866评论 0 1
  • 1.对象:拥有方法和属性的个体【类比一个人,人是一个对象,人的名字(张三、李四)等名词性质是属性;人会吃、跑等动词...
    Marks阅读 171评论 0 0