两示例程序在手机上运行效果较好
第一部分
文件浏览在手机中是常见的功能了,基本步骤如下:
1. 显示当前目录中所有的子目录和文件,以ListView形式
2. 当单击某一列表项时, 如果当前列表项是目录,则进入该目录, 并重复第1步,如果当前列表项是文件,则做进一步处理
第二部分 主要是通过FileOutputStream 和 FileInputStream 对象可能很容易地访问手机中任何权限范围内的文件。
将Gallery 中的图像保存到SD卡根目录中的代码如下:
String sdcard = android.os.Environment.getExternalStorageDirectory().toString();
FileOutputStream fos = new FileOutputStream(sdcard + "/item" + gallery.getSelectedItemPosition() + ".jpg");
((BitmapDrawable) getResources().getDrawable(imageResIdList.get(gallery.getSelectedItemPosition()))).getBitmap()
.compress(CompressFormat.JPEG, 50, fos);
fos.close();
保存后,这里使用ImageBrowser 类来浏览SD卡中的目录和文件,当单击图像时,创建一个显示当前图像的对话框,代码如下:
public void onFileItemClick(String filename)
{
if (!filename.toLowerCase().endsWith(".jpg"))
return;
View view = getLayoutInflater().inflate(R.layout.imagebrowser, null);
ImageView imageView = (ImageView) view.findViewById(R.id.imageview);
try
{
FileInputStream fis = new FileInputStream(filename);
imageView.setImageDrawable(Drawable.createFromStream(fis, filename));
//null 表示单击监听事件处理,这里是什么都不做
new AlertDialog.Builder(this).setTitle("浏览图像").setView(view).setPositiveButton("关闭", null).show();
fis.close();
}
catch (Exception e)
{}
}
具体代码请参见 ch06_filebrowser , ch06_savebrowseimage工程, 实际上ch06_savebrowseimage包含了 ch06_filebrowser 代码