/[projects]/android/Side9/src/dk/thoerup/side9/ImageAdapter.java
ViewVC logotype

Diff of /android/Side9/src/dk/thoerup/side9/ImageAdapter.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 915 by torben, Sat Jun 26 10:11:35 2010 UTC revision 1013 by torben, Tue Aug 10 07:01:40 2010 UTC
# Line 1  Line 1 
1  package dk.thoerup.side9;  package dk.thoerup.side9;
2    
3  import java.io.File;  import java.io.File;
4    import java.io.FileOutputStream;
5    import java.io.FilenameFilter;
6    import java.io.IOException;
7  import java.util.ArrayList;  import java.util.ArrayList;
8    
9  import android.content.Context;  import android.content.Context;
10  import android.graphics.Bitmap;  import android.graphics.Bitmap;
11  import android.graphics.BitmapFactory;  import android.graphics.BitmapFactory;
12    import android.graphics.Bitmap.CompressFormat;
13    import android.net.Uri;
14  import android.os.Environment;  import android.os.Environment;
15  import android.util.DisplayMetrics;  import android.util.DisplayMetrics;
16    import android.util.Log;
17  import android.view.View;  import android.view.View;
18  import android.view.ViewGroup;  import android.view.ViewGroup;
19  import android.view.WindowManager;  import android.view.WindowManager;
# Line 38  public class ImageAdapter extends BaseAd Line 44  public class ImageAdapter extends BaseAd
44                  Toast.makeText(mContext, "Side9 folder not found on sdcard", Toast.LENGTH_LONG).show();                  Toast.makeText(mContext, "Side9 folder not found on sdcard", Toast.LENGTH_LONG).show();
45                  return;                  return;
46          }          }
47    
48            File files[] = root.listFiles( new ExtensionFilter("jpg") );
49            
50    
51            String thumbPath =  path + "/.thumb/";
52                    
53          File files[] = root.listFiles();          File thumbDir = new File(thumbPath);
54          for (File f : files) {                    if (! thumbDir.exists()) {
55              Bitmap bmp = BitmapFactory.decodeFile( f.getPath() );                  thumbDir.mkdirs();
56              Bitmap scaled =  Bitmap.createScaledBitmap(bmp, bmp.getWidth()/4, bmp.getHeight()/4, true);          }
57                        
58                  mBitmapPaths.add(  f.getPath() );          
59                  mBitmaps.add(scaled);          for (File f : files) {
60    
61                    String fileName = f.getName();
62                    File thumb = new File ( thumbPath + fileName );
63                    
64                    if (! thumb.exists()) {
65                            Bitmap bmp = BitmapFactory.decodeFile( f.getPath() );
66                            Bitmap scaled =  Bitmap.createScaledBitmap(bmp, bmp.getWidth()/4, bmp.getHeight()/4, true);
67                            mBitmaps.add(scaled);
68                            try {
69                                    FileOutputStream fos = new FileOutputStream(thumb);
70                                    scaled.compress(CompressFormat.JPEG, 90, fos);                          
71                                    
72                            } catch (IOException e) {
73                                    Log.e("Side9", "error", e);
74                            }
75                            
76                    } else {
77                            Bitmap thumbBmp = BitmapFactory.decodeFile( thumb.getPath());
78                            mBitmaps.add(thumbBmp);
79                    }
80                            mBitmapPaths.add(  f.getPath() );            
81                    
82          }          }
83                    
84          size = getSize();          size = getSize();
85      }      }
86    
87      public int getCount() {      public int getCount() {
88          return mBitmaps.size();          return mBitmapPaths.size();
89      }      }
90    
91      public Object getItem(int position) {      public Object getItem(int position) {
# Line 67  public class ImageAdapter extends BaseAd Line 100  public class ImageAdapter extends BaseAd
100          return mBitmapPaths.get(position);          return mBitmapPaths.get(position);
101      }      }
102            
103        public ArrayList<String> getImagePaths() {
104            return mBitmapPaths;
105        }
106        
107      private int getSize() {      private int getSize() {
108                   DisplayMetrics metrics = new DisplayMetrics();                   DisplayMetrics metrics = new DisplayMetrics();
109                   WindowManager wmgr = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE);                   WindowManager wmgr = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE);
# Line 90  public class ImageAdapter extends BaseAd Line 127  public class ImageAdapter extends BaseAd
127              imageView = (ImageView) convertView;              imageView = (ImageView) convertView;
128          }          }
129    
130            //imageView.setImageURI(  Uri.parse(mThumbPaths.get(position)) );
131          imageView.setImageBitmap( mBitmaps.get(position) );          imageView.setImageBitmap( mBitmaps.get(position) );
132          return imageView;          return imageView;
133        }
134        
135        class ExtensionFilter implements FilenameFilter {
136            private String mExt;
137            public ExtensionFilter(String ext) {
138                    mExt = ext;
139            }
140    
141                    @Override
142                    public boolean accept(File dir, String filename) {
143                            String parts[] = filename.split("\\.");
144                            if (parts.length > 1) {
145                                    String ext = parts[ parts.length -1];
146                                    if (ext.equals(mExt)) {
147                                            return true;
148                                    }
149                            }
150                            return false;
151                    }
152            
153      }      }
154  }  }

Legend:
Removed from v.915  
changed lines
  Added in v.1013

  ViewVC Help
Powered by ViewVC 1.1.20