package com.echo5bravo.govre.UTILS; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.AsyncTask; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import com.google.android.maps.OverlayItem; import com.readystatesoftware.mapviewballoons.BalloonOverlayView; import com.echo5bravo.govre.R; public class CustomBalloonOverlayView<Item extends OverlayItem> extends BalloonOverlayView<CustomOverlayItem> { private TextView title; private TextView snippet; private ImageView image; public CustomBalloonOverlayView(Context context, int balloonBottomOffset) { super(context, balloonBottomOffset); } @Override protected void setupView(Context context, final ViewGroup parent) { // inflate our custom layout into parent LayoutInflater inflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); View v = inflater.inflate(R.layout.map_balloon_overlay, parent); // setup our fields title = (TextView) v.findViewById(R.id.balloon_item_title); snippet = (TextView) v.findViewById(R.id.balloon_item_snippet); image = (ImageView) v.findViewById(R.id.balloon_item_image); } @Override protected void setBalloonData(CustomOverlayItem item, ViewGroup parent) { // map our custom item data to fields title.setText(item.getTitle()); snippet.setText(item.getSnippet()); // get remote image from network. // bitmap results would normally be cached, but this is good enough for demo purpose. image.setImageResource(R.drawable.icon); new FetchImageTask() { protected void onPostExecute(Bitmap result) { if (result != null) { image.setImageBitmap(result); } } }.execute(item.getImageURL()); } private class FetchImageTask extends AsyncTask<String, Integer, Bitmap> { @Override protected Bitmap doInBackground(String... arg0) { Bitmap b = null; try { //Usefull Code For Pulling graphics over web (expl: set arg0[0] = "http://www.vre.org/graphics/stationphotos/mpv.jpg") //b = BitmapFactory.decodeStream((InputStream) new URL(arg0[0]).getContent()); b = BitmapFactory.decodeResource(getResources(), (Integer.parseInt(arg0[0]))); } catch (Exception e) { //e.printStackTrace(); } return b; } } }