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;
}
}
}