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