Центр текста на изображении в Android? - PullRequest
0 голосов
/ 31 августа 2011

В моем приложении для Android мне нужно отобразить текст на изображении.Текст вводится пользователем в alertDialog.Этот текст мне нужно центрировать на нижней части изображения.Я рисую текст на изображении так:

private Canvas drawTextImage(Bitmap b) {
        Canvas c = new Canvas(b);
        Paint paint = new Paint();
        paint.setColor(getResources().getColor(R.color.orange));

        paint.setStrokeWidth(30);
        paint.setAntiAlias(true);
        paint.setTextSize(40);
        c.drawText(text, 350, 900, paint);

        c.translate(300, 50);
        return c;
    }

Мой alertDiallg такой:

        final AlertDialog.Builder alert = new AlertDialog.Builder(this);
    alert.setTitle("Enter a text ");
    final EditText input = new EditText(this);
    InputFilter[] FilterArray = new InputFilter[1];
    FilterArray[0] = new InputFilter.LengthFilter(25);
    input.setFilters(FilterArray);

    alert.setView(input);
    alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int whichButton) {
            text = input.getText().toString().trim();
            Canvas c = new Canvas(bitmapResult);
            drawTextImage(bitmapResult);
            saveimage();
        }
    });

    alert.setNegativeButton("Cancel",
            new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int whichButton) {
                    dialog.cancel();
                    saveimage();
                }
            });

    alert.show();

Текст должен быть в центре в соответствии с его длиной.Как я могу это сделать?

Заранее спасибо ..

1 Ответ

3 голосов
/ 31 августа 2011

Используйте

Paint.setTextAlign(Paint.Align.CENTER);

на краске, используемой для рисования текста.

public void setTextAlign (Paint.Align align)

Установить выравнивание текста краски.Это контролирует, как текст располагается относительно его происхождения.Выравнивание по левому краю означает, что весь текст будет нарисован справа от его источника (т. Е. Источник указывает ЛЕВОЙ край текста) и т. Д.

Источник


Редактировать: В тексте отрисовки вы должны указать половину изображения в качестве координаты x (центр), координата y должна оставаться неизменной (где-то вдольдно, в зависимости от того, как высоко вы хотите).

...