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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 925 - (show annotations) (download)
Sun Jun 27 10:41:10 2010 UTC (13 years, 10 months ago) by torben
File size: 3486 byte(s)
New version with home-made picture view
1 package dk.thoerup.side9;
2
3 import java.io.File;
4 import java.io.FilenameFilter;
5 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 import android.util.DisplayMetrics;
12 import android.view.View;
13 import android.view.ViewGroup;
14 import android.view.WindowManager;
15 import android.widget.BaseAdapter;
16 import android.widget.GridView;
17 import android.widget.ImageView;
18 import android.widget.Toast;
19
20 public class ImageAdapter extends BaseAdapter {
21 //int mGalleryItemBackground;
22 private Context mContext;
23
24 ArrayList<String> mBitmapPaths = new ArrayList<String>();
25 ArrayList<Bitmap> mBitmaps = new ArrayList<Bitmap>();
26
27 int size;
28
29 public ImageAdapter(Context c) {
30 mContext = c;
31
32 String path = Environment.getExternalStorageDirectory().getPath() + "/Side9" ;
33
34
35
36 File root = new File(path);
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() {
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 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) {
88 ImageView imageView;
89 if (convertView == null) { // if it's not recycled, initialize some attributes
90 imageView = new ImageView(mContext);
91 imageView.setLayoutParams(new GridView.LayoutParams(size, size));
92 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
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 }

  ViewVC Help
Powered by ViewVC 1.1.20