/[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 915 - (show annotations) (download)
Sat Jun 26 10:11:35 2010 UTC (13 years, 10 months ago) by torben
File size: 2898 byte(s)
Attempt to make it work on HVGA devices (magic/hero)
1 package dk.thoerup.side9;
2
3 import java.io.File;
4 import java.util.ArrayList;
5
6 import android.content.Context;
7 import android.graphics.Bitmap;
8 import android.graphics.BitmapFactory;
9 import android.os.Environment;
10 import android.util.DisplayMetrics;
11 import android.view.View;
12 import android.view.ViewGroup;
13 import android.view.WindowManager;
14 import android.widget.BaseAdapter;
15 import android.widget.GridView;
16 import android.widget.ImageView;
17 import android.widget.Toast;
18
19 public class ImageAdapter extends BaseAdapter {
20 //int mGalleryItemBackground;
21 private Context mContext;
22
23 ArrayList<String> mBitmapPaths = new ArrayList<String>();
24 ArrayList<Bitmap> mBitmaps = new ArrayList<Bitmap>();
25
26 int size;
27
28 public ImageAdapter(Context c) {
29 mContext = c;
30
31 String path = Environment.getExternalStorageDirectory().getPath() + "/Side9" ;
32
33
34
35 File root = new File(path);
36
37 if (root.exists() == false) {
38 Toast.makeText(mContext, "Side9 folder not found on sdcard", Toast.LENGTH_LONG).show();
39 return;
40 }
41
42 File files[] = root.listFiles();
43 for (File f : files) {
44 Bitmap bmp = BitmapFactory.decodeFile( f.getPath() );
45 Bitmap scaled = Bitmap.createScaledBitmap(bmp, bmp.getWidth()/4, bmp.getHeight()/4, true);
46
47 mBitmapPaths.add( f.getPath() );
48 mBitmaps.add(scaled);
49 }
50
51 size = getSize();
52 }
53
54 public int getCount() {
55 return mBitmaps.size();
56 }
57
58 public Object getItem(int position) {
59 return position;
60 }
61
62 public long getItemId(int position) {
63 return position;
64 }
65
66 public String getImagePath(int position) {
67 return mBitmapPaths.get(position);
68 }
69
70 private int getSize() {
71 DisplayMetrics metrics = new DisplayMetrics();
72 WindowManager wmgr = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE);
73 wmgr.getDefaultDisplay().getMetrics(metrics);
74 if (metrics.widthPixels < 480) {
75 return 150;
76 } else {
77 return 200;
78 }
79 }
80
81 public View getView(int position, View convertView, ViewGroup parent) {
82 ImageView imageView;
83 if (convertView == null) { // if it's not recycled, initialize some attributes
84 imageView = new ImageView(mContext);
85 imageView.setLayoutParams(new GridView.LayoutParams(size, size));
86 imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
87 imageView.setAdjustViewBounds(true);
88 imageView.setPadding(4, 4, 4, 4);
89 } else {
90 imageView = (ImageView) convertView;
91 }
92
93
94 imageView.setImageBitmap( mBitmaps.get(position) );
95 return imageView;
96
97 }
98 }

  ViewVC Help
Powered by ViewVC 1.1.20