自定义android地图中的标记,在图像中放置文本

nee*_*ena 0 android google-maps

我有一个图像显示为标记,在该图像中我必须在地图移动时更新时间

现在面临的问题是

  1. 我不知道如何在我的自定义图像中显示时间。

    BitmapDescriptor descriptor = BitmapDescriptorFactory.fromResource(R.drawable.ic_remaining_time);
        googleMap.addMarker(new MarkerOptions()
            .position(cameraPosition.target)
            .title(cameraPosition.toString())
            .icon(descriptor)                       
    );
    
    Run Code Online (Sandbox Code Playgroud)

请任何人帮助我

Sha*_*auf 5

每次更改地图或移动并设置如下图标时都可绘制

marker.setIcon(BitmapDescriptorFactory.fromBitmap(CommonUtils.writeOnDrawable(mContext,R.drawable.ic_location,"your text here").getBitmap()));
Run Code Online (Sandbox Code Playgroud)

// 位图可绘制方法

public static BitmapDrawable writeOnDrawable(Context context, int drawableId, String text){

            Bitmap bm = BitmapFactory.decodeResource(context.getResources(), drawableId).copy(Bitmap.Config.ARGB_8888, true);

            Paint paint = new Paint();
            paint.setStyle(Paint.Style.FILL);
            paint.setColor(Color.WHITE);
            paint.setTextSize(30);
            paint.setTextAlign(Paint.Align.CENTER);
            Canvas canvas = new Canvas(bm);

            // Change the position of text here
            canvas.drawText(text,bm.getWidth()/2 //x position
            , bm.getHeight()/2  // y position
            , paint);
            return new BitmapDrawable(context.getResources(),bm);
        }
Run Code Online (Sandbox Code Playgroud)

当您第一次在谷歌地图对象中添加标记时,您可以获得标记

 Marker marker = googleMap.addMarker(new MarkerOptions().position(new LatLng(mLocation.getLatitude(), mLocation.getLongitude())).title(allJob.getBusiness().getName()).icon(BitmapDescriptorFactory.fromResource(R.drawable.ic_location_icon)));
Run Code Online (Sandbox Code Playgroud)