Android Canvas.drawTextOnPath выглядит некорректно, если для рисования установлено значение Stroke

У меня есть некоторая настройка кода в расширенном представлении, которое делает некоторые рисунки, которые легко масштабируются (векторные). (Мой масштаб установлен как 0–1,0)

Я заметил, что когда я устанавливаю заливку краской на FILL, текст, нарисованный на контуре, выглядит правильно, но когда я устанавливаю заливку на обводку (мне просто нужен контур text) изображение выглядит так, как будто это какое-то ЛСД-путешествие. Вот мой пример кода:

    Paint yellowPaint = Paints.getFillTextPaint(0.01f, 0xFFffea3e, 0.065f);
    canvas.drawTextOnPath(mContext.getString(R.string.building_a_partnership),
             Paths.getRoundedTextPath(mOuterCircleRectF, 280f, 350f),
             0, -0.025f, yellowPaint);

public static Paint getFillTextPaint(float f, int color, float textSize) {
        Paint textPaint = new Paint();
        textPaint.setFlags(Paint.ANTI_ALIAS_FLAG);
        textPaint.setStyle(Paint.Style.FILL);
        textPaint.setColor(color);
        textPaint.setTextSize(textSize);
        textPaint.setStrokeWidth(f);
        textPaint.setShadowLayer(0.002f, 0.0f, 0.0f, 0xFF000000);
        textPaint.setTypeface(Typeface.SANS_SERIF);
        return textPaint;
    }

Если я изменю Paint.Style с FILL на STROKE, я получу изображения ниже. Я использовал canvas.drawText (), и он отлично работает, показывая обведенные буквы. Это только когда он применяется к Пути, когда кажется, что все становится странным.

Fill Image

Stroke Image

27
задан Eva Dias 20 September 2012 в 15:23
поделиться

1 ответ

По-видимому, это связано с тем, что мой масштабный коэффициент равен 0-1. Похоже, есть ошибка, связанная с рендерингом обводки с размером < 1.0 лечится. Предлагаемое решение - использовать шкалу от 0 до 100 ..

0
ответ дан 28 November 2019 в 05:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: