/[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 790 by torben, Thu Jun 3 09:11:07 2010 UTC revision 925 by torben, Sun Jun 27 10:41:10 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.FilenameFilter;
5  import java.util.ArrayList;  import java.util.ArrayList;
6    
7  import android.content.Context;  import android.content.Context;
 import android.content.res.TypedArray;  
8  import android.graphics.Bitmap;  import android.graphics.Bitmap;
9  import android.graphics.BitmapFactory;  import android.graphics.BitmapFactory;
10  import android.os.Environment;  import android.os.Environment;
11    import android.util.DisplayMetrics;
12  import android.view.View;  import android.view.View;
13  import android.view.ViewGroup;  import android.view.ViewGroup;
14    import android.view.WindowManager;
15  import android.widget.BaseAdapter;  import android.widget.BaseAdapter;
16  import android.widget.GridView;  import android.widget.GridView;
17  import android.widget.ImageView;  import android.widget.ImageView;
18    import android.widget.Toast;
19    
20  public class ImageAdapter extends BaseAdapter {  public class ImageAdapter extends BaseAdapter {
21      //int mGalleryItemBackground;      //int mGalleryItemBackground;
22      private Context mContext;      private Context mContext;
23            
24      ArrayList<String> mBitmaps = new ArrayList<String>();      ArrayList<String> mBitmapPaths = new ArrayList<String>();
25        ArrayList<Bitmap> mBitmaps = new ArrayList<Bitmap>();
26        
27        int size;
28    
29      public ImageAdapter(Context c) {      public ImageAdapter(Context c) {
30          mContext = c;          mContext = c;
31                    
32          String path = Environment.getExternalStorageDirectory().getPath() + "/Side9" ;          String path = Environment.getExternalStorageDirectory().getPath() + "/Side9" ;
33                    
34            
35            
36          File root = new File(path);          File root = new File(path);
         File files[] = root.listFiles();  
         for (File f : files) {  
                 mBitmaps.add(  f.getPath() );  
         }  
37                    
38            if (root.exists() == false) {
39                    Toast.makeText(mContext, "Side9 folder not found on sdcard", Toast.LENGTH_LONG).show();
40                    return;
41            }
42    
43            File files[] = root.listFiles( new ExtensionFilter("jpg") );
44            
45            for (File f : files) {          
46                Bitmap bmp = BitmapFactory.decodeFile( f.getPath() );
47                Bitmap scaled =  Bitmap.createScaledBitmap(bmp, bmp.getWidth()/4, bmp.getHeight()/4, true);
48                
49                    mBitmapPaths.add(  f.getPath() );
50                    mBitmaps.add(scaled);
51            }
52                    
53            size = getSize();
54      }      }
55    
56      public int getCount() {      public int getCount() {
# Line 47  public class ImageAdapter extends BaseAd Line 66  public class ImageAdapter extends BaseAd
66      }      }
67            
68      public String getImagePath(int position) {      public String getImagePath(int position) {
69          return mBitmaps.get(position);          return mBitmapPaths.get(position);
70        }
71        
72        public ArrayList<String> getImagePaths() {
73            return mBitmapPaths;
74        }
75        
76        private int getSize() {
77                     DisplayMetrics metrics = new DisplayMetrics();
78                     WindowManager wmgr = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE);
79                     wmgr.getDefaultDisplay().getMetrics(metrics);
80                     if (metrics.widthPixels < 480) {
81                             return 150;
82                     } else {
83                             return 200;
84                     }
85      }      }
86    
87      public View getView(int position, View convertView, ViewGroup parent) {      public View getView(int position, View convertView, ViewGroup parent) {
88          ImageView imageView;          ImageView imageView;
89          if (convertView == null) {  // if it's not recycled, initialize some attributes          if (convertView == null) {  // if it's not recycled, initialize some attributes
90              imageView = new ImageView(mContext);              imageView = new ImageView(mContext);
91              imageView.setLayoutParams(new GridView.LayoutParams(200, 200));              imageView.setLayoutParams(new GridView.LayoutParams(size, size));
92              imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);              imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
93              imageView.setAdjustViewBounds(true);                imageView.setAdjustViewBounds(true);  
94              imageView.setPadding(4, 4, 4, 4);              imageView.setPadding(4, 4, 4, 4);
# Line 62  public class ImageAdapter extends BaseAd Line 96  public class ImageAdapter extends BaseAd
96              imageView = (ImageView) convertView;              imageView = (ImageView) convertView;
97          }          }
98    
         Bitmap bmp = BitmapFactory.decodeFile( mBitmaps.get(position) );  
         imageView.setImageBitmap( Bitmap.createScaledBitmap(bmp, bmp.getWidth()/3, bmp.getHeight()/3, true) );  
         return imageView;  
99    
100            imageView.setImageBitmap( mBitmaps.get(position) );
101            return imageView;
102        }
103        
104        class ExtensionFilter implements FilenameFilter {
105            private String mExt;
106            public ExtensionFilter(String ext) {
107                    mExt = ext;
108            }
109    
110                    @Override
111                    public boolean accept(File dir, String filename) {
112                            String parts[] = filename.split("\\.");
113                            if (parts.length > 1) {
114                                    String ext = parts[ parts.length -1];
115                                    if (ext.equals(mExt)) {
116                                            return true;
117                                    }
118                            }
119                            return false;
120                    }
121            
122      }      }
123  }  }

Legend:
Removed from v.790  
changed lines
  Added in v.925

  ViewVC Help
Powered by ViewVC 1.1.20