Как показать все изображения, которые хранятся на SD-карте? - PullRequest
1 голос
/ 24 ноября 2011

Я хочу показать все изображения, которые хранятся на SD-карте в соответствии с сохраненной папкой. Если в папке 2 изображения, то должно отображаться только два изображения. Предположим, что на SD-карте содержится папка с названием фильма и несколько изображений, а затем, когда я щелкаю папку с фильмом, на ней должны отображаться все пять изображений. Я использую список в левой части экрана, чтобы показать все папки SD-карты, где хранятся изображения.

Мой код:

public class ImageAdapter extends BaseAdapter {
    private Context mContext;
    private String Path;
    String [] imagesFile;
    File dirName;
    Bitmap bm[];
    int count;

    public ImageAdapter(Context c) {
        mContext = c;
    }

    public ImageAdapter(Context c, String nAndroids) {
        mContext = c;
        Path=nAndroids;
        dirName=new File(Path+"/");
        if(dirName.isDirectory()){
            imagesFile=dirName.list();
            count=imagesFile.length ;

        }
    }

    public int getCount() {
        if(imagesFile!=null){
            return count;
        }
         return 0;

    }

    public Object getItem(int position) {
        return null;
    }

    public long getItemId(int position) {
        return 0;
    }

    // create a new ImageView for each item referenced by the Adapter
    public View getView(int position, View convertView, ViewGroup parent) {
        ImageView imageView=null;
        System.gc();
        if( imagesFile!=null  && imagesFile.length>0)
        {
            for(String bitmapFileName : imagesFile)
            {
                if (convertView == null) {  // if it's not recycled, initialize some attributes
                    imageView = new ImageView(mContext);
                    imageView.setLayoutParams(new GridView.LayoutParams(100, 100));
                    imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
                    imageView.setPadding(8, 8, 8, 8);

                    BitmapFactory.Options options = new BitmapFactory.Options();  
                    options.inSampleSize = 2;
                    Bitmap bmp = BitmapFactory.decodeFile(dirName.getPath() + "/" + bitmapFileName,options);
                    Log.e("Images is Decoded in ImageAdapter Class","<<-->>"+bmp);
                    imageView.setImageBitmap(bmp);
                } else {
                    imageView = (ImageView) convertView;
                }
        }


        }

        else 
        {
            if (convertView == null) {  // if it's not recycled, initialize some attributes
                imageView = new ImageView(mContext);
                imageView.setLayoutParams(new GridView.LayoutParams(100, 100));
                imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
                imageView.setPadding(8, 8, 8, 8);

            } else {
                imageView = (ImageView) convertView;
            }
        }
   return imageView;
    }
...