0

Canvas と Paint on map を使用して、いくつかのマーカーをマークし、名前を追加します。しかし、残りの 9 文字が隠れている (見えない) だけのテキストを見ることができます。どうやってするの?

private Bitmap drawTitleOnMarkerIcon(MarkingInfo markingInfo) {
    Bitmap bm = BitmapFactory.decodeResource(getResources(), AddLocationTypeIcon.getIcon(markingInfo.getType())).copy(
            Bitmap.Config.ARGB_8888, true);

    Canvas canvas = new Canvas(bm);
    Paint paint = new Paint();
    paint.setColor(Color.BLUE);
    paint.setAntiAlias(true);
    paint.setFakeBoldText(true);
    paint.setTextSize(16);
    paint.setTextAlign(Align.LEFT);
    canvas.drawText(markingInfo.getName(), 0, 60, paint);

    BitmapDrawable draw = new BitmapDrawable(getResources(), bm);
    return draw.getBitmap();
}

完全なテキストを表示できるはずです。15 文字を超える場合は、次の行に折り返す必要があります。多くのサイトを検索し、以前にクエリを投稿しましたが、解決策がありませんでした。このタスクを達成するために助けてください

4

1 に答える 1

0
private Bitmap textAsBitmap(String text, float textSize, int textColor) {
    Paint paint = new Paint();
    paint.setTextSize(textSize);
paint.setColor(textColor);
    paint.setFakeBoldText(true);
    paint.setTextAlign(Paint.Align.LEFT);
    int width = (int) (paint.measureText(text) + 0.5f); // round
    float baseline = (int) (-paint.ascent() + 0.5f); // ascent()is negative
    int height = (int) (baseline + paint.descent() + 0.5f);
Bitmap image = Bitmap.createBitmap(width,height,Bitmap.Config.ARGB_8888);
    Canvas canvas = new Canvas(image);
canvas.drawText(text, 0, baseline, paint);
    return image;
    }




MarkerOptions().title(Name()).icon(BitmapDescriptorFactory.fromBitmap(textAsBitmap)); 
于 2014-06-23T09:00:42.207 に答える