2017-06-14 51 views
0

我正在構建谷歌地圖應用程序。我有不同的座標對象,但每個對象都有一個唯一的int值,我希望顯示在標記旁邊。 例如,對於具有特定座標和值123的物體,我想在地圖上(在這些座標上)標記並在其旁邊顯示值123.
我一直在做一些研究,發現合理的是使用Android API從基本圖像創建自己的位圖圖像和一些「附加」並用於標記圖標的字符串。
有沒有更好的方法來做到這一點?
在同一主題上,您可以同時顯示地圖上每個標記的標題嗎?有沒有在Android Studio中自定義每個Google Maps標記的方法?

回答

1

https://stackoverflow.com/a/14812104

請參閱鏈接。 Snipet用於在製造商上添加文字,也可以定製。

+1

是@kisslory您可以完全自定義每個標記以滿足您的需求。 –

1

是@kisslory您可以完全自定義每個標記以滿足您的需求。

設置每個標記的位圖時,可以使用下面的方法使用給定資源創建新的位圖。

public static Bitmap drawTextToBitmap(Context gContext, 
           int gResId, 
           String gText) { 
    Resources resources = gContext.getResources(); 
    float scale = resources.getDisplayMetrics().density; 
    Bitmap bitmap = 
      BitmapFactory.decodeResource(resources, gResId); 

    android.graphics.Bitmap.Config bitmapConfig = bitmap.getConfig(); 
    // set default bitmap config if none 
    if(bitmapConfig == null) { 
     bitmapConfig = android.graphics.Bitmap.Config.ARGB_8888; 
    } 
    // resource bitmaps are imutable, 
    // so we need to convert it to mutable one 
    bitmap = bitmap.copy(bitmapConfig, true); 

    Canvas canvas = new Canvas(bitmap); 
    // new antialised Paint 
    Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG); 
    // text color - #3D3D3D 
    paint.setColor(Color.rgb(61, 61, 61)); 
    // text size in pixels 
    paint.setTextSize((int) (14 * scale)); 
    // text shadow 
    paint.setShadowLayer(1f, 0f, 1f, Color.WHITE); 

    // draw text to the Canvas center 
    Rect bounds = new Rect(); 
    paint.getTextBounds(gText, 0, gText.length(), bounds); 
    int x = (bitmap.getWidth() - bounds.width())/2; 
    int y = (bitmap.getHeight() + bounds.height())/2; 

    canvas.drawText(gText, x, y, paint); 

    return bitmap; 
} 
相關問題