2017-06-14 3 views
0

Googleマップアプリを構築しています。私は座標の異なるオブジェクトを持っていますが、各オブジェクトにはマーカーの隣に表示したいユニークなint値があります。 たとえば、特定の座標と値123を持つオブジェクトの場合、マーカをマップ上に配置し、値の隣に値123を配置したいとします。
私はいくつかの研究を行っています。おそらくAndroid APIを使用して、ベースイメージと「添付」された文字列から独自のビットマップイメージを作成し、それをマーカーアイコンとして使用することが考えられます。
これを行うより良い方法はありますか?
同じトピックで、あなたは同時にあなたの地図上のすべてのマーカーのタイトルを表示しますか?Androidスタジオで各Googleマップマーカーをカスタマイズする方法はありますか?

答えて

1

https://stackoverflow.com/a/14812104

のリンクを参照してください。スニペットは、カスタマイズ可能なテキストをメーカーに追加するために使用されます。

+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; 
} 
関連する問題