goolge 地图弹出气泡

?新建图层
package com.android.yibai.antking;import java.util.List;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.drawable.Drawable;import android.os.Bundle;import android.view.View;import android.widget.ImageView;import android.widget.TextView;import com.google.android.maps.GeoPoint;import com.google.android.maps.ItemizedOverlay;import com.google.android.maps.MapActivity;import com.google.android.maps.MapView;import com.google.android.maps.Overlay;import com.google.android.maps.OverlayItem;public class MapMain extends MapActivity{/** * 地图 */protected MapView mapView;/** * 弹出的气泡View */private View popView;private int[] image={R.drawable.icon}; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //初始化气泡,并设置为不可见 popView = View.inflate(this, R.layout.popview, null); setContentView(R.layout.main); //获得map mapView = (MapView)this.findViewById(R.id.mapview); mapView.addView(popView,new MapView.LayoutParams( MapView.LayoutParams.WRAP_CONTENT, MapView.LayoutParams.WRAP_CONTENT,null ,MapView.LayoutParams.BOTTOM_CENTER)); //这里没有给GeoPoint ,在onFoucusChangeListener中设置 popView.setVisibility(View.GONE); /** * 创建图标资料(用于显示在overlayItem所表示表记的地位 */ Drawable drawable =this.getResources().getDrawable(R.drawable.icon); //为mark定以地位和鸿沟 drawable.setBounds(0,0,drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight()); CustomItemizedOverlay overlay = new CustomItemizedOverlay(this,drawable); //设置显示/隐藏气泡的位置 overlay.setOnFocusChangeListener(onFocusChangeListener); /** * 创建并添加一个标志 */ GeoPoint point = new GeoPoint(35422006,119524095); //创建标识 Bitmap bitmap = BitmapFactory.decodeResource(MapMain.this.getResources(), R.drawable.psu); MyOverlayItem overlayItem = new MyOverlayItem(point ,"银河公园","这是一个充满神奇的公园,一步一景,我去的时候有一种柳暗花明又一村的感觉",bitmap); overlay.addOverlay(overlayItem); /** * 创建第二个标识 */ Bitmap bitmap1 = BitmapFactory.decodeResource(this.getResources(), R.drawable.icon); GeoPoint point1 = new GeoPoint((int)(22.53108*1E6),(int)(113.99151*1E6)); MyOverlayItem overlayItem1 = new MyOverlayItem(point1,"秀丽中华","中国最好的旅游胜地之一",bitmap1); overlay.addOverlay(overlayItem1); //向地图里添加自定义的ItemizedOverlay List<Overlay> mapOverlays =mapView.getOverlays(); mapOverlays.add(overlay); //设置地图为卫星地图 mapView.setSatellite(true); //设置地图可以缩放 mapView.setBuiltInZoomControls(true); /** * 取得地图管理对象,用于把握地图 * */ //设置地图的中间 mapView.getController().setCenter(point); //设置地图默认的缩放级别 mapView.getController().setZoom(13); }@Overrideprotected boolean isRouteDisplayed() {// TODO Auto-generated method stubreturn false;}private final ItemizedOverlay.OnFocusChangeListener onFocusChangeListener = new ItemizedOverlay.OnFocusChangeListener() {@Overridepublic void onFocusChanged(ItemizedOverlay overlay, OverlayItem newFocus) {// TODO Auto-generated method stub//创建气泡窗口if(popView!=null){popView.setVisibility(View.GONE);}if(newFocus !=null){MapView.LayoutParams geoLp =(MapView.LayoutParams) popView.getLayoutParams();geoLp.point = newFocus.getPoint();//这行用于popView的定位TextView title = (TextView)popView.findViewById(R.id.map_bubbleTitle);title.setText(newFocus.getTitle());TextView desc = (TextView)popView.findViewById(R.id.map_bubbleText); ImageView image = (ImageView)popView.findViewById(R.id.map_bubbleImage); image.setImageBitmap(((MyOverlayItem) newFocus).getBitmap());if(newFocus.getSnippet()==null||newFocus.getSnippet().length()==0){desc.setVisibility(View.GONE);}else{desc.setVisibility(View.VISIBLE);desc.setText(newFocus.getSnippet());}mapView.updateViewLayout(popView,geoLp);popView.setVisibility(View.VISIBLE);}}};}?