right now I have a LocationAdapter class that takes in my "Location" object and displays each Location into a ListView. I am trying to pass it in a Bitmap image and have it display that image in the ListView row. It works, BUT the image takes a while to load, even after the text in the row is loaded. I am testing on an actual device. Here is my Activity code:
public class MainActivity extends ActionBarActivity { ArrayList<Location> arrayOfLocations; LocationAdapter adapter; private static Bitmap bitmap; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(R.layout.activity_main); // Construct the data source arrayOfLocations = new ArrayList<Location>(); // Create the adapter to convert the array to views adapter = new LocationAdapter(this, arrayOfLocations); Bitmap image = getBitmapFromID(1); adapter.add(new Location(image, "Place 1", "We have the freshest fruit in the whole world!", "2 miles", "8-5 mon-sat\nclosed sun")); adapter.add(new Location(image, "Place 2", "We have the freshest fruit in the whole world!", "2 miles", "8-5 mon-sat")); adapter.add(new Location(image, "Place 3", "We have the best cakes in the whole world!", "2 miles", "8-5 mon-fri\n10-1 sat\nclosed sun\nclosed Memorial Day")); adapter.add(new Location(image, "Fruit Stand", "Best place!", "2 miles", "8-5 mon-sat")); adapter.add(new Location(image, "Place 4", "Food!", "2 miles", "8-5 mon-sat")); adapter.add(new Location(image, "Place 5", "Toys!", "2 miles", "8-5 mon-sat")); // Attach the adapter to a ListView ListView listView = (ListView) findViewById(R.id.listView1); View header = (View) getLayoutInflater().inflate( R.layout.listview_header, null); listView.addHeaderView(header); listView.setAdapter(adapter); } public static Bitmap getBitmapFromID(int id) { //final Bitmap bitmap; Thread thread = new Thread(new Runnable() { @Override public void run() { try { bitmap = BitmapFactory .decodeStream((InputStream) new URL( "http://icons.iconarchive.com/icons/yellowicon/game-stars/256/Mario-icon.png") .getContent()); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }); thread.start(); return bitmap; } } Is there anything I do doing wrong? Is it normal for this to take a while to load? Thanks!