MainActivity.java revision d2e1718fa8e1199b03dc0d069711b24e946aa858
1package com.example.bitmapsample;
2
3import android.app.Activity;
4import android.os.Bundle;
5import android.view.View;
6import android.view.ViewGroup;
7import android.widget.BaseAdapter;
8import android.widget.ListView;
9
10import com.android.bitmap.BitmapCache;
11import com.android.bitmap.UnrefedBitmapCache;
12import com.android.bitmap.util.Trace;
13import com.example.bitmapcachesample.R;
14
15public class MainActivity extends Activity {
16    private ListView mListView;
17
18    private static final int TARGET_CACHE_SIZE_BYTES = 5 * 1024 * 1024;
19    private final BitmapCache mCache = new UnrefedBitmapCache(TARGET_CACHE_SIZE_BYTES, 0.1f, 0);
20
21    @Override
22    protected void onCreate(Bundle savedInstanceState) {
23        super.onCreate(savedInstanceState);
24        setContentView(R.layout.activity_main);
25        Trace.init();
26        mListView = (ListView) findViewById(R.id.list);
27        mListView.setAdapter(new MyAdapter());
28    }
29
30    private class MyAdapter extends BaseAdapter {
31
32        private final String[] mItems;
33
34        private final String[] ITEMS = new String[]{
35                "https://www.google.com/images/srpr/logo4w.png",
36                "http://www.google.com/logos/2012/celibidache12-hp.jpg",
37                "http://www.google.com/logos/2012/clara_schuman-2012-hp.jpg",
38                "http://www.google.com/logos/2011/royalwedding11-hp.png",
39                "http://www.google.com/logos/2012/vets_day-12-hp.jpg",
40                "http://www.google.com/logos/2011/firstmaninspace11-hp-js.jpg",
41                "http://www.google.com/logos/2011/nat-sov-and-childrens-turkey-hp.png",
42                "http://www.google.com/logos/2012/First_Day_Of_School_Isreal-2012-hp.jpg",
43                "http://www.google.com/logos/2012/celibidache12-hp.jpg",
44                "http://www.google.com/logos/2012/korea12-hp.png"
45        };
46
47        private static final int COPIES = 50;
48
49        public MyAdapter() {
50            mItems = new String[ITEMS.length * COPIES];
51            for (int i = 0; i < COPIES; i++) {
52                for (int j = 0; j < ITEMS.length; j++) {
53                    mItems[i * ITEMS.length + j] = ITEMS[j];
54                }
55            }
56        }
57
58        @Override
59        public int getCount() {
60            return mItems.length;
61        }
62
63        @Override
64        public Object getItem(int position) {
65            return mItems[position];
66        }
67
68        @Override
69        public long getItemId(int position) {
70            return position;
71        }
72
73        @Override
74        public View getView(int position, View convertView, ViewGroup parent) {
75            BitmapView v;
76            if (convertView != null) {
77                v = (BitmapView) convertView;
78            } else {
79                v = new BitmapView(MainActivity.this);
80                v.initialize(mCache);
81            }
82            v.setImage(mItems[position]);
83            return v;
84        }
85    }
86}
87