You can add OverlayItem with different markers to the same ItemizedOverlay using the function:
overlayItem.setMarker(drawable);
To do this, you need to set the borders on Drawable :
Drawable icon1 = getResources().getDrawable(R.drawable.icon1); Drawable icon2 = getResources().getDrawable(R.drawable.icon2); icon1.setBounds(0, 0, icon1.getIntrinsicWidth(), icon1.getIntrinsicHeight()); icon2.setBounds(0, 0, icon2.getIntrinsicWidth(), icon2.getIntrinsicHeight()); OverlayItem item1 = new OverlayItem(new Point(48858290, 2294450), "Tour Eiffel", "La tour Eiffel"); OverlayItem item2 = new OverlayItem(new Point(48873830, 2294800), "Arc de Triomphe", "L'arc de triomphe"); item1.setMarker(icon1); item2.setMarker(icon2);
You will need as many bitmaps as the maximum number of markers. But this will be faster than dynamically drawing text in bitmap images. This is a mobile phone; processors are not fast. If you still want to draw text on a bitmap, Ii is really easy, you can do it like this:
//get a reference on the ImageView ImageView iv = (ImageView)findViewById(R.id.myImage); // load the marker image Bitmap myRefBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.icon); // create a mutable bitmap with the same size as the marker image Bitmap myWrittenBitmap = Bitmap.createBitmap(myRefBitmap.getWidth(), myRefBitmap.getHeight(), Bitmap.Config.ARGB_4444); // create a Canvas on which to draw and a Paint to write text. Canvas canvas = new Canvas(myWrittenBitmap); Paint txtPaint = new Paint(); txtPaint.setColor(Color.RED); txtPaint.setTextSize(12); txtPaint.setFlags(Paint.ANTI_ALIAS_FLAG); txtPaint.setTypeface(Typeface.DEFAULT_BOLD); //draw ref bitmap then text on our canvas canvas.drawBitmap(myRefBitmap, 0, 0, null); canvas.drawText("Droid", 5, 15, txtPaint); // set the new written bitmap into the ImageView iv.setImageBitmap(myWrittenBitmap);
pcans source share