首页 > 解决方案 > 如何像原始谷歌地图标记一样在地图标记下设置文本

问题描述

原来的谷歌地图标记 我想这样做1

标记下方或顶部的文字

但我找不到完美的答案

现在我可以做一个标记。由 url 制作的标记图标。

用这种方式做标记

private Bitmap writeTextOnDrawable(int drawableId, String text) {

        Bitmap bm = getBitmapFromURL(drawableId);

        Paint paint = new Paint();
        paint.setStyle(Paint.Style.FILL);
        paint.setColor(Color.BLACK);
        paint.setTextAlign(Paint.Align.CENTER);
        paint.setLinearText(true);
        paint.setAntiAlias(true);
        paint.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD));

        paint.setTextSize(35);

        Rect textRect = new Rect();
        paint.getTextBounds(text, 0, text.length(), textRect);

        Canvas canvas = new Canvas(bm);


        //Calculate the positions
//        int xPos = (canvas.getWidth() / 2) - 2;     //-2 is for regulating the x position offset

        //"- ((paint.descent() + paint.ascent()) / 2)" is the distance from the baseline to the center.
//        int yPos = (int) ((canvas.getHeight() / 2) - ((paint.descent() + paint.ascent()) / 2)) ;

        canvas.drawText(text, canvas.getHeight() + 2, canvas.getHeight() + 2, paint);

        return  bm;
    } 

但我不喜欢这种方式,因为图标中的文本是 panited 的。

像这样 画在图标

我怎么能像1一样完美,用户清楚地知道这个标记是什么

标签: android-studio

解决方案


我发现我的完美

我创建了一个新的标记布局

有一个 imgview 和一个 textview(在 tge img 视图下)

这个布局创建的每个标记

设置img和文本

像这样完成

我从这个 url引用


推荐阅读