1

Im совершенно новое для Android, так что простите меня, если я что-то пропустил.Изменение размера настраиваемого маркера на Android-картах

У меня есть следующий код, который отображает пользовательский маркер на картах. У этого пользовательского маркера также есть текст. Он хорошо работает до такой степени, что я хочу изменить размер маркера на определенную величину, когда текст будет длиннее.

кода я изначально был для пользовательских маркеров был,

private Bitmap drawTextToBitmap(final int mResId, final String mText) { 
     Resources resources = getResources(); 
     // Get the screen's density scale 
     float scale = resources.getDisplayMetrics().density; 
     Bitmap bitmap = BitmapFactory.decodeResource(resources, mResId); 
     Bitmap.Config bitmapConfig = bitmap.getConfig(); 

     if (bitmapConfig == null) { 
      bitmapConfig = Bitmap.Config.ARGB_8888; 
     } 
     bitmap = bitmap.copy(bitmapConfig, true); 
     Canvas canvas = new Canvas(bitmap); 

     Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG); 
     // Set font color 
     paint.setColor(Color.WHITE); 
     // Set font size and scale it 
     paint.setTextSize((int) (14 * scale)); 
     // Set shadow width 
     paint.setShadowLayer(1f, 0f, 1f, Color.BLACK); 
     // Set anti-aliasing 
     paint.setAntiAlias(true); 
     // Make font bold 
     paint.setTypeface(Typeface.create(Typeface.DEFAULT, Typeface.BOLD)); 

     Rect bounds = new Rect(); 
     paint.getTextBounds(mText, 0, mText.length(), bounds); 
     int x = (bitmap.getWidth() - bounds.width())/2; 
     int y = ((bitmap.getHeight() + bounds.height())/2)-25; 
     canvas.drawText(mText, x, y, paint); 

     return bitmap; 
    } 

Как я могу изменить размер растрового изображения, а также увеличить размер шрифта, соответственно, без потери какого-либо разрешения? К сожалению, я не могу дать скриншоты из-за проблем с лицензированием/разрешением.

ответ

0

Нашли решение, которое должно было добавить следующее, прежде чем создавать холст.

int newWidth = (int) (origBitmap.getWidth() * scalingFactor); 
int newHeight = (int) (origBitmap.getHeight() * scalingFactor); 
Bitmap bitmap = Bitmap.createScaledBitmap(origBitmap, newWidth, newHeight, true); 

Это будет масштабировать растровое изображение соответственно. Я также могу масштабировать шрифт с помощью того же самого scalingFactor.