android文件管理器listview,浅析Android文件管理器(项目一)

文件管理器是管理文件的软件,帮助用户处理日常工作,管理储存在本地和网络中的文件。所有文件管理器都提供了基本的操作如创建、打开、查看、编辑、移动和删除文件。许多Android文件管理器还提供了额外功能,如网络连接、应用程序管理、存档和压缩处理、搜索等。

今晚就写了res下面那些文件,因为在编写逻辑的时候如果资源文件夹没有的话,会非常的苦恼的。所以学习的时候总是会先把资源编写完毕,再开始编写逻辑。

然后我自己也总结一下今晚学了什么吧。

IDE : Android Studio

惯例,上代码。

5596b67d1004b29a4dfb86604de80dc1.png

先是 color.xml 。今天我才知道,原来color 里面有四个值。

5d037076aae14b09fbc406054c739b50.png

一直以来觉得就是 RGB 就完了,结果前面还有一个 A ,中间因为IDE提示有一个拼写错误,我还以为是不能这么写。这一点以后要记住。

然后是 dimens.xml 这个文件夹其实是 Eclipse (或者以前的IDE)编写的过程中会自动生成,是一个关于规范的。也就是上下左右距离屏幕边缘要有16dp的距离,方便点按。现在新建工程基本不会生成这个文件了。但是在开发过程中还是要注意。因为 RelativeLayout 在创建的时候也会有类似的设置。

f39439d22b43938c5641a561084f0bf5.png

接着是 string.xml ,这里写了一个 %1$s 之类的东西,我目前判定为占位符。是用来提示的语句,暂时还不知道。以后再说吧。

另外 Hello World 与 Setting 没用,完全可以删除掉。但是节约几个字节也没啥用处吧。大概。

76b75493cfc2d9411581082e25293253.png

然后是 styles.xml ,上面那个是创建的时候生成的,下面的那个是我照抄的。而看源码,其实也是创建工程的时候生成的。项目作者也只是加上了个 windowNoTitle 与 windowActionBar 而已。可能修改了颜色,为了风格统一。

3cfc6b17d8751b4d63262988da1f2b92.png

activity_main 这个文件一看里面就有包含,而包含的是一个 actionBar ,之前在 style 中声明了不要 actionbar 完全就是为了自定义。因为是包含在一个 linearlayout 之中的,也不是标准的标题栏了。

bf329981f0dcc9dbe4bb5a8c3e282231.png

自定义 toolbar ,这里面也仅仅是设置了一下颜色与主题。

84fb4fd7cede99f3ad0ab4813c738589.png

到这里已经可以确定了,主界面应该就是这个 framelayout 才对,因为文件浏览没这个大概是不行的吧。

这里面学到了许多ListView的属性。

afb13841722ee2f476a2cda617d3b01c.png

android:id="@+id/listView"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:cacheColorHint="#ffffffff" //缓冲颜色提示

android:clipToPadding="false" //四周填充缩短

android:divider="@null"//item 分隔物(ListView 中每个 item 之间的横线)

android:dividerHeight="0dp"// item 分隔物高度

android:fadingEdge="none"//边缘褪色

android:fadingEdgeLength="0dp"//边缘褪色高度

android:scrollbars="none"/>//滚动条

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,先简单介绍一下文件管理器的功能: 文件管理器是一款可以浏览、查看、复制、移动、重命名、删除等操作文件的应用程序。在Android平台上,可以通过系统提供的File类来实现对文件的操作。下面是一个简单的文件管理器的实现: 1.创建一个新的Android项目,命名为FileExplorer。 2.在布局文件中添加一个ListView控件: ``` <ListView android:id="@+id/list_view" android:layout_width="match_parent" android:layout_height="match_parent"/> ``` 3.在MainActivity中获取ListView控件并设置适配器: ``` public class MainActivity extends AppCompatActivity { private ListView listView; private ArrayAdapter<String> adapter; private File currentDir; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listView = findViewById(R.id.list_view); adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1); listView.setAdapter(adapter); currentDir = Environment.getExternalStorageDirectory(); refreshFileList(currentDir); } private void refreshFileList(File file) { currentDir = file; setTitle(currentDir.getAbsolutePath()); File[] files = currentDir.listFiles(); if (files != null) { adapter.clear(); for (File f : files) { adapter.add(f.getName()); } } } } ``` 4.在ListView中添加item的点击事件,点击文件夹进入下一级目录,点击文件打开文件: ``` listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { String fileName = adapter.getItem(position); File file = new File(currentDir, fileName); if (file.isDirectory()) { refreshFileList(file); } else { openFile(file); } } }); private void openFile(File file) { Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); Uri uri = FileProvider.getUriForFile(this, BuildConfig.APPLICATION_ID + ".fileprovider", file); String mimeType = getMimeType(file); intent.setDataAndType(uri, mimeType); intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); Intent chooser = Intent.createChooser(intent, "Open File"); startActivity(chooser); } private String getMimeType(File file) { String extension = MimeTypeMap.getFileExtensionFromUrl(file.getAbsolutePath()); return MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension); } ``` 5.在AndroidManifest.xml中添加FileProvider: ``` <application> ... <provider android:name="androidx.core.content.FileProvider" android:authorities="${applicationId}.fileprovider" android:exported="false" android:grantUriPermissions="true"> <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/provider_paths"/> </provider> </application> ``` 6.在res/xml目录下创建provider_paths文件,指定共享哪些目录: ``` <paths xmlns:android="http://schemas.android.com/apk/res/android"> <external-path name="external_files" path="."/> </paths> ``` 到这里,一个简单的文件管理器就完成了。当然,还有很多细节需要处理,比如权限申请、文件复制、移动、重命名、删除等操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值