Как нарисовать текст на изображении, размер авто текста которого соответствует ширине android - PullRequest
0 голосов
/ 28 апреля 2020

Я хочу добавить текст в центр изображения, и размер текста должен уместиться на весь экран (ширина)

public Bitmap drawTextToBitmap(Context gContext, Bitmap bitmap, String gText) {

    Resources resources = gContext.getResources();
    float scale = resources.getDisplayMetrics().density;
    android.graphics.Bitmap.Config bitmapConfig =
            bitmap.getConfig();
    if (bitmapConfig == null) {
        bitmapConfig = android.graphics.Bitmap.Config.ARGB_8888;
    }
    bitmap = bitmap.copy(bitmapConfig, true);
    Canvas canvas = new Canvas(bitmap);
    Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
    paint.setColor(Color.parseColor("#50ffffff"));



    paint.setTextSize(determineMaxTextSize(gText,500*scale));
    paint.setTextAlign(Paint.Align.CENTER);
    paint.setShadowLayer(1f, 0f, 1f, Color.WHITE);
    paint.setTypeface(Typeface.create(Typeface.DEFAULT, Typeface.BOLD));

    // draw text to the Canvas center
    Rect bounds = new Rect();
    //paint.getTextBounds(gText, 0, gText.length(), bounds);
    int x = (bitmap.getWidth() - bounds.width()) / 2;
    int y = (bitmap.getHeight() + bounds.height()) / 2;
    int horizontalSpacing = 24;
    int verticalSpacing = 36;
    int x1 = horizontalSpacing;//(bitmap.getWidth() - bounds.width()) / 2;
    int y1 = bitmap.getHeight() - verticalSpacing;//(bitmap.getHeight() + bounds.height()) / 2;
    paint.setShadowLayer(20, 0, 0, Color.GRAY);
    canvas.drawText(gText, x, y, paint);

    return bitmap;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...