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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 925 - (hide annotations) (download)
Sun Jun 27 10:41:10 2010 UTC (13 years, 11 months ago) by torben
File size: 3486 byte(s)
New version with home-made picture view
1 torben 790 package dk.thoerup.side9;
2    
3     import java.io.File;
4 torben 925 import java.io.FilenameFilter;
5 torben 790 import java.util.ArrayList;
6    
7     import android.content.Context;
8     import android.graphics.Bitmap;
9     import android.graphics.BitmapFactory;
10     import android.os.Environment;
11 torben 915 import android.util.DisplayMetrics;
12 torben 790 import android.view.View;
13     import android.view.ViewGroup;
14 torben 915 import android.view.WindowManager;
15 torben 790 import android.widget.BaseAdapter;
16     import android.widget.GridView;
17     import android.widget.ImageView;
18 torben 912 import android.widget.Toast;
19 torben 790
20     public class ImageAdapter extends BaseAdapter {
21     //int mGalleryItemBackground;
22     private Context mContext;
23    
24 torben 791 ArrayList<String> mBitmapPaths = new ArrayList<String>();
25     ArrayList<Bitmap> mBitmaps = new ArrayList<Bitmap>();
26 torben 915
27     int size;
28 torben 790
29     public ImageAdapter(Context c) {
30     mContext = c;
31    
32     String path = Environment.getExternalStorageDirectory().getPath() + "/Side9" ;
33    
34 torben 912
35    
36 torben 790 File root = new File(path);
37 torben 912
38     if (root.exists() == false) {
39     Toast.makeText(mContext, "Side9 folder not found on sdcard", Toast.LENGTH_LONG).show();
40     return;
41     }
42 torben 925
43     File files[] = root.listFiles( new ExtensionFilter("jpg") );
44 torben 912
45 torben 791 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 torben 790 }
52 torben 915
53     size = getSize();
54 torben 790 }
55    
56     public int getCount() {
57     return mBitmaps.size();
58     }
59    
60     public Object getItem(int position) {
61     return position;
62     }
63    
64     public long getItemId(int position) {
65     return position;
66     }
67    
68     public String getImagePath(int position) {
69 torben 791 return mBitmapPaths.get(position);
70 torben 790 }
71 torben 915
72 torben 925 public ArrayList<String> getImagePaths() {
73     return mBitmapPaths;
74     }
75    
76 torben 915 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 torben 790
87     public View getView(int position, View convertView, ViewGroup parent) {
88     ImageView imageView;
89     if (convertView == null) { // if it's not recycled, initialize some attributes
90     imageView = new ImageView(mContext);
91 torben 915 imageView.setLayoutParams(new GridView.LayoutParams(size, size));
92 torben 790 imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
93     imageView.setAdjustViewBounds(true);
94     imageView.setPadding(4, 4, 4, 4);
95     } else {
96     imageView = (ImageView) convertView;
97     }
98    
99 torben 791
100     imageView.setImageBitmap( mBitmaps.get(position) );
101 torben 790 return imageView;
102 torben 925 }
103    
104     class ExtensionFilter implements FilenameFilter {
105     private String mExt;
106     public ExtensionFilter(String ext) {
107     mExt = ext;
108     }
109 torben 790
110 torben 925 @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 torben 790 }
123     }

  ViewVC Help
Powered by ViewVC 1.1.20