Создайте один класс BalloonItemizedOverlay, как предложено в здесь
и создайте XML, как вы хотите, чтобы отобразить наложение (например, я создал так)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingBottom="5dip"
android:paddingLeft="5dip"
android:id="@+id/balloon_main_layout"
android:background="@drawable/popupbg"
android:paddingTop="0dip"
>
<ImageView android:layout_width="40dp"
android:layout_height="40dp"
android:id="@+id/diseaseImg"
android:padding="5dp"
android:layout_gravity="center_vertical"
></ImageView>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_weight="1"
android:paddingTop="10dip"
android:paddingRight="30dip"
android:id="@+id/balloon_inner_layout">
<TextView android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:id="@+id/balloon_item_title"
android:text="balloon_item_title"
android:layout_marginLeft="2dp"
android:textSize="14dip"
android:paddingBottom="5dp"
android:textColor="#FF000000"></TextView>
</LinearLayout>
<ImageView android:layout_width="30dp"
android:layout_height="30dp"
android:src="@android:drawable/ic_menu_close_clear_cancel"
android:id="@+id/close_img_button"
android:layout_gravity="right"
android:paddingLeft="10dip"
android:paddingBottom="10dip"
android:paddingRight="8dip"
android:paddingTop="2dip"></ImageView>
</LinearLayout>
итакже создайте класс BalloonOverlayView, как показано ниже
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.ImageView.ScaleType;
import com.google.android.maps.OverlayItem;
import com.healthcarealert.R;
public class BalloonOverlayView extends FrameLayout {
private LinearLayout layout;
private TextView title;
private TextView snippet;
private ImageView diseaseImg;
public static boolean isPopupClicked = false;
private Context con = null;
/**
* Create a new BalloonOverlayView.
*
* @param context - The activity context.
* @param balloonBottomOffset - The bottom padding (in pixels) to be applied
* when rendering this view.
*/
public BalloonOverlayView(Context context, int balloonBottomOffset) {
super(context);
this.con =context;
setPadding(10, 0, 10, balloonBottomOffset);
layout = new LinearLayout(context);
layout.setVisibility(VISIBLE);
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = inflater.inflate(R.layout.balloon_map_overlay, layout);
title = (TextView) v.findViewById(R.id.balloon_item_title);
// snippet = (TextView) v.findViewById(R.id.balloon_item_snippet);
diseaseImg = (ImageView)v.findViewById(R.id.diseaseImg);
ImageView close = (ImageView) v.findViewById(R.id.close_img_button);
close.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
layout.setVisibility(GONE);
}
});
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
params.gravity = Gravity.NO_GRAVITY;
addView(layout, params);
}
/**
* Sets the view data from a given overlay item.
*
* @param item - The overlay item containing the relevant view data
* (title and snippet).
*/
public void setData(OverlayItem item) {
layout.setVisibility(VISIBLE);
if (item.getTitle() != null) {
title.setVisibility(VISIBLE);
title.setText(item.getTitle());
} else {
title.setVisibility(GONE);
}
/*if (item.getSnippet() != null) {
snippet.setVisibility(VISIBLE);
snippet.setText(item.getSnippet());
} else {
snippet.setVisibility(GONE);
}*/
}
public void setImage(String item) {
layout.setVisibility(VISIBLE);
if (item != null) {
diseaseImg.setVisibility(VISIBLE);
ImageLoader imageLoader = new ImageLoader(this.con);;
diseaseImg.setTag("http://healthcarealert.com/healthcaretest/" + item);
diseaseImg.setScaleType(ScaleType.FIT_XY);
imageLoader.DisplayImage("http://healthcarealert.com/healthcaretest/" + item,
HotSpotsMapActivity.activity, diseaseImg);
} else {
diseaseImg.setVisibility(GONE);
}
}
}
этот класс имеет метод setImage (String item)
Где String содержит URL-адрес изображения
Вызовите этот метод в методе onTap HelloItemisedналожение с URL-адресом изображения