2013-12-17 47 views
0

我一直在研究如何現在相當一段時間做到這一點,我無法找到一個單一的解決方案,它好像沒有人以前甚至試過這種。我試圖做到以下幾點:是否有可能爲谷歌地圖信息窗口重疊的標記

這是標記的樣子:

enter image description here

而且這是我希望它看起來當信息窗口彈出,如:

enter image description here

有沒有辦法讓信息窗口重疊這樣的標記並隱藏它的一部分? 注意:第二張圖片只是設計模型(photoshopped),尚未實現。第一張圖片是實際的截圖。

回答

1

這裏是你的代碼添加自定義標記圖像。

LayoutInflater inflater = (LayoutInflater) getApplicationContext() 
      .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

    marker=inflater.inflate(R.layout.custom_marker_layout,null, false); 

    numTxt = (TextView) marker.findViewById(R.id.num_txt); 

     for(int i=0;i<locations.size();i++){ 

      numTxt.setText(count.get(i).toString()); 

      numTxt.setTextColor(Color.GREEN); 

      if(Integer.parseInt(count.get(i).toString())<=5){ 
       numTxt.setTextColor(Color.RED); 
      } 

      String title=locations.get(i).toString()+"count"+count.get(i); 

      Currnt=mMap.addMarker(new MarkerOptions() 
      .icon(BitmapDescriptorFactory.fromBitmap(createDrawableFromView(BasicMapActivity2.this, marker))). 
      position(new LatLng(Double.parseDouble(latitudes.get(i).toString()), Double.parseDouble(longitudes.get(i).toString()))) 
      .title(title) 
      .snippet(address.get(i))); 
      markers.add(Currnt); 
     mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(Double.parseDouble(latitudes.get(i).toString()), Double.parseDouble(longitudes.get(i).toString())), 12.0f));   
     } 

和方法在谷歌地圖轉換視圖到位圖。

// Convert a view to bitmap 
    public static Bitmap createDrawableFromView(Context context, View view) { 
     DisplayMetrics displayMetrics = new DisplayMetrics(); 
     ((BasicMapActivity2)context).getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); 

     view.setLayoutParams(new LayoutParams(200,65)); 
     view.measure(displayMetrics.widthPixels, displayMetrics.heightPixels); 
     view.layout(0, 0, displayMetrics.widthPixels, displayMetrics.heightPixels); 
     view.buildDrawingCache(); 
     view.buildDrawingCache(true); 

     Bitmap bitmap = Bitmap.createBitmap(view.getMeasuredWidth(), view.getMeasuredHeight(), Bitmap.Config.ARGB_8888); 

     Canvas canvas = new Canvas(bitmap); 

     view.draw(canvas); 

     return bitmap; 
    } 

和Custom_marker_layout.xml

<?xml version="1.0" encoding="utf-8"?> 
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:gravity="center_vertical|center_horizontal" > 

<ImageView 
    android:id="@+id/img" 
    android:layout_width="55dp" 
    android:layout_height="65dp" 
    android:src="@drawable/custom_marker" /> 

<TextView 
    android:id="@+id/num_txt" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="9" 
    android:textColor="#008000" 
    android:textSize="18dp" 
    android:textStyle="bold" /> 

</FrameLayout> 

在這裏,在這個實現-i顯示了自定義圖像,並在此圖像中的一個的TextView與計數值,當我上標記然後雙擊它顯示我的自定義窗口。

相關問題