我如何在Osmdroid标记内插入文本?假设我需要在地图上放置几个标记,每个标记应该在其中有数字.我怎么能做到的?我尝试#setTitle()
方法,但是把文本放在气球中.
更新:
for(int i = 0; i < orders.size(); i++) { mOrderPoint = orders.get(i).getStart(); final Order order = orders.get(i); Marker orderMarker = new Marker(mMap); orderMarker.setIcon(ContextCompat.getDrawable(mContext,R.drawable.order_pin)); orderMarker.setPosition(mOrderPoint); }
Blue_Alien.. 8
这个方法从你的资源中获取一个drawable,在它上面绘制一些文本并返回新的drawable.您需要做的就是为它提供泡泡的资源ID,以及您想要的文本.然后,您可以将返回的drawable传递到任何您想要的位置.
public BitmapDrawable writeOnDrawable(int drawableId, String text){ Bitmap bm = BitmapFactory.decodeResource(getResources(), drawableId).copy(Bitmap.Config.ARGB_8888, true); Paint paint = new Paint(); paint.setStyle(Style.FILL); paint.setColor(Color.BLACK); paint.setTextSize(20); Canvas canvas = new Canvas(bm); canvas.drawText(text, 0, bm.getHeight()/2, paint); return new BitmapDrawable(bm); }
注意:
要保持密度,您需要此构造函数
BitmapDrawable (Resources res, Bitmap bitmap)
所以,保持你的背景,最后的回归应该是这样的
return new BitmapDrawable(context.getResources(), bm);
这可以防止不需要的重新调整大小的可绘制.
这个方法从你的资源中获取一个drawable,在它上面绘制一些文本并返回新的drawable.您需要做的就是为它提供泡泡的资源ID,以及您想要的文本.然后,您可以将返回的drawable传递到任何您想要的位置.
public BitmapDrawable writeOnDrawable(int drawableId, String text){ Bitmap bm = BitmapFactory.decodeResource(getResources(), drawableId).copy(Bitmap.Config.ARGB_8888, true); Paint paint = new Paint(); paint.setStyle(Style.FILL); paint.setColor(Color.BLACK); paint.setTextSize(20); Canvas canvas = new Canvas(bm); canvas.drawText(text, 0, bm.getHeight()/2, paint); return new BitmapDrawable(bm); }
注意:
要保持密度,您需要此构造函数
BitmapDrawable (Resources res, Bitmap bitmap)
所以,保持你的背景,最后的回归应该是这样的
return new BitmapDrawable(context.getResources(), bm);
这可以防止不需要的重新调整大小的可绘制.