나는 안드로이드를 처음 접했기 때문에 내가 뭔가를 놓친 경우 나를 용서하십시오.
지도에 사용자 지정 마커를 표시하는 다음 코드가 있습니다. 이 사용자 지정 마커에도 일부 텍스트가 있습니다. 텍스트가 길 때 마커의 크기를 일정량 조정하려는 지점까지 잘 작동합니다.
원래 커스텀 마커에 대한 코드는 다음과 같습니다.
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;
}
이 비트 맵의 크기를 조정하고 해상도를 잃지 않고 그에 따라 글꼴 크기를 늘리려면 어떻게해야합니까? 안타깝게도 라이선스 / 권한 문제로 인해 스크린 샷을 제공 할 수 없습니다.
캔버스를 만들기 전에 다음을 추가하는 솔루션을 찾았습니다.
int newWidth = (int) (origBitmap.getWidth() * scalingFactor);
int newHeight = (int) (origBitmap.getHeight() * scalingFactor);
Bitmap bitmap = Bitmap.createScaledBitmap(origBitmap, newWidth, newHeight, true);
이에 따라 비트 맵의 크기가 조정됩니다. 동일한 scalingFactor를 사용하여 글꼴 크기를 비슷하게 조정할 수 있습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다