最近做个上传图片功能,需要对sd中的所需要的图片进行上传,需要在sd卡中找到这个图片。具体方法如下:
file_row.xml:
<?xml version="1.0" encoding="utf-8"?>
<TextView android:id="@+id/text1"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
directory_list.xml:
<?xml version="1.0" encoding="utf-8"?>
<TextView android:id="@+id/text1"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
TestGrid.java:
import java.io.File;
import java.io.FileFilter;
import java.util.ArrayList;
import java.util.List;
import android.app.ListActivity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.widget.ListView;
public class TestGrid extends ListActivity {
private static final FileFilter IMAGES_FILTER = new FileFilter() {
public boolean accept(File f) {
return f.isDirectory() || f.getName().matches("^.*?\\.(jpg|png|bmp|gif)$");
}
};
private FileListAdapter fileList;
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.directory_list);
fill(new File("/"));
}
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && !fileList.isRoot()) {
fill(fileList.getItem(1));
return true;
}
return super.onKeyDown(keyCode, event);
}
private void fill(File folder) {
List<File> files = new ArrayList<File>();
files.add(folder);
if (folder.getParentFile() != null)
files.add(folder.getParentFile());
for (File file : folder.listFiles(IMAGES_FILTER)) {
files.add(file);
}
fileList = new FileListAdapter(this, R.layout.file_row, files);
setListAdapter(fileList);
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
File file = fileList.getItem(position);
if (file.isDirectory())
fill(file);
// TODO use image switcher to display selected images
}
}
FileListAdapter.java
import java.io.File;
import java.util.List;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;
public class FileListAdapter extends ArrayAdapter<File>{
public FileListAdapter(Context context, int Resource,List<File> objects) {
super(context,Resource,objects);
// TODO Auto-generated constructor stub
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
TextView view = (TextView) super.getView(position, convertView, parent);
File file = getItem(position);
if (position == 0)
view.setText(view.getResources().getString(R.string.current_folder) + file.getAbsolutePath());
else if (position == 1 && !isRoot())
view.setText(R.string.to_parent_folder);
else
view.setText(file.getName());
return view;
}
public boolean isRoot() {
return getItem(0).getParent() == null;
}
}
分享到:
相关推荐
遍历SD卡(通常指的是外部存储空间)上的所有视频文件,可以使用递归的方式来实现。从根目录开始,逐个检查每个文件是否为视频文件。可以通过文件的扩展名来判断,常见的视频格式有.mp4、.avi、.mkv、.wmv等。以下是...
标题“遍历SD卡文件”指示了一个示例项目,它展示了如何在Android应用中遍历SD卡上的所有文件。这个小例子可以帮助开发者了解如何实现这一功能。 首先,我们需要知道在Android中访问外部存储的权限控制。自Android ...
标题“遍历SD卡”指的是在Android系统中访问和操作外部存储设备,即SD卡上的文件和目录。在Android中,SD卡通常被用来扩展设备的存储空间,用于存储用户数据、应用程序及其资源。这篇博客文章可能详细介绍了如何通过...
在Android平台上,开发人员经常需要处理与媒体文件交互的任务,比如读取SD卡中的MP3音乐文件。这个过程涉及到文件系统的操作、权限管理以及多媒体数据的处理。以下是一些关于如何在Android中读取SD卡中MP3文件的关键...
在Android系统中,SD卡上存储了各种类型的数据文件夹,这些文件夹各自承担着不同的功能和职责,管理着系统数据、系统工具数据以及第三方应用数据等。由于Android系统的开放性,不同品牌的设备可能会有所差异,但大体...
针对“安卓SD卡文件管理更新信息”这一主题,我们将深入探讨如何遍历SD卡中的文件,以及如何管理和更新这些文件的相关知识点。 首先,IV遍历SD卡,这里的"IV"可能代表“第IV种方法”或者是一个版本号,指的是一个...
在示例代码中,使用`Environment.getExternalStorageDirectory().getPath()`获取外部存储(通常是SD卡)的根目录。在Android 10(API级别29)及以上版本,这种方法可能不再可靠,因为Android引入了存储访问框架,...
### Android读取SD卡中音乐文件列表 在Android开发中,常常需要实现的功能之一就是读取设备中的音乐文件。这通常用于音乐播放器类的应用程序,以便用户可以浏览并选择他们想要播放的歌曲。本文将详细介绍如何通过...
遍历SD卡目录,获取到所有视频文件后,将文件路径和名称显示在列表中。用户选择文件后,传递选中的文件路径给视频播放器进行播放。 5. **错误处理和优化**:在实际开发中,需要考虑各种异常情况,如文件不存在、...
Android 遍历文件夹中所有文件的实例代码 Android 遍历文件夹中所有文件的实例代码主要用于获取指定目录内所有文件的路径及文件名。该实例代码可以用于各种 Android 应用程序中,例如媒体播放器、文件管理器等。 ...
在Android开发中,访问外部存储设备(如SD卡)并管理其中的文件是常见的需求。本文将详细讲解如何实现“Android加载SD卡目录,文件夹遍历,文件图标修改,设置文件对应打开方式”等功能。 首先,加载SD卡目录需要...
接下来,我们要遍历SD卡中的MP3文件。可以使用File类的listFiles()方法,配合FileFilter过滤器,只选择以".mp3"结尾的文件。例如: ```java File sdCard = Environment.getExternalStorageDirectory(); File ...
接着,我们可以遍历SD卡上的特定目录,如`/Music`,使用`File`类的方法如`listFiles()`来获取所有文件。对于每个文件,我们需要判断其是否为音频文件,这通常通过检查文件扩展名(如.mp3、.aac等)或者使用`...
- 使用`File`类遍历SD卡目录,获取所有文件和子目录。`listFiles()`方法可以获取指定目录下的所有文件和子目录。 - 对于每个文件,检查其扩展名(如.mp3、.wav等),只展示音频文件。 - 用户点击文件时,传递选中...
综上所述,这个"android 搜索SD卡文件(源码)"示例利用`AsyncTask`实现了异步地遍历SD卡上的所有文件和子目录,收集它们的绝对路径,并在完成时更新UI。通过这种方式,我们可以在不阻塞主线程的同时,提供良好的...
本话题主要探讨如何在Android环境下,使用C++调用Java方法来扫描内置和外置SD卡上的MP3文件,并将扫描结果保存到文件中。 首先,我们需要了解Android的JNI(Java Native Interface)机制,这是Java与本地代码(如...
在Android应用开发中,有时我们需要将资源文件从项目的`Assets`目录复制到设备的外部存储(SD卡)上。这通常发生在应用启动时或者根据用户需求动态加载资源时。本篇将详细介绍如何实现这一功能,涉及到的主要知识点...
然后,使用list()方法获取SD卡中的所有文件列表,存储在一个字符串数组中。最后,遍历数组,拼接文件名和换行符,形成一个完整的文件列表字符串,并将其显示在TextView中。 代码示例: ```java private String ...
在Android平台上,对SD卡进行特定类型的文件扫描是一项常见的任务,比如用户可能希望找到所有的.mp3音乐文件或.mp4视频文件。在这个场景中,我们主要会涉及到以下几个Android开发中的关键知识点: 1. **读写权限**...
在Android系统中,访问SD卡上的文件并展示在列表中是一项常见的需求,这通常涉及到文件系统的操作和UI组件的使用。本话题将深入探讨如何利用ListView和自定义Adapter实现一个SD卡文件浏览器。 首先,我们需要了解...