zoukankan      html  css  js  c++  java
  • 【android】 浏览文件,如浏览sd卡下的图片文件

    http://leiwuluan.iteye.com/blog/1513167

    http://zhchzh1000.iteye.com/blog/763406

    一个上传图片的功能,需要对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;
       }
    
     }
  • 相关阅读:
    Oracle数据库event事件与dump文件介绍
    (原)dbms_rowid.rowid_create来创建一个rowid
    Oracle读取事件的命名理由(哈哈)
    关于删除temporary tablespace的一点小建议
    oracle的rowid到底是什么
    电脑高手最常用的五个组合键
    win2008里如何取消IE游览器弹出增强的安全配置?
    经典SQL语句大全
    Win7中安装Rational Rose,启动提示计算机丢失suite objects.dll
    Asp.net页面跳转
  • 原文地址:https://www.cnblogs.com/549294286/p/2628028.html
Copyright © 2011-2022 走看看