Как нарисовать текст в Android так, как я нарисовал его в WinForms?Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Как нарисовать текст в Android так, как я нарисовал его в WinForms?

Сообщение Anonymous »

Я рисовал текст как в WinForms, так и в Android на растровом изображении.
Текст: Καλώς ήρθατε στην επίσκεψη, шрифт Arial< /code> и размер шрифта 12.
В WinForms я использовал графику и установил для нее антиализацию.
В Android я использовал холст и краска также настроены на антиализацию
В WinForms (увеличено):
[img]https: //i.sstatic.net/5fNQQrHO.png[/img]

В Android (увеличено):
[img]https: //i.sstatic.net/VnSSWYth.png[/img]

В WinForms я установил для TextRenderingHint значение AntiAliasGridFit, а для CompositingQuality — значение по умолчанию< /code> и SmoothingMode на None
в winform:

Код: Выделить всё

Bitmap _StringBitmap = new Bitmap(4096, 64);

Font _font = new Font("Arial",12);
SolidBrush _drawBrush = new SolidBrush(Color.Black);
StringFormat _strFormat = StringFormat.GenericTypographic;
strFormat.LineAlignment = StringAlignment.Near;
strFormat.Alignment = StringAlignment.Near;
int _rectHeight = _font.Height;
Graphics _StrGraphic = Graphics.FromImage(_StringBitmap);
_StrGraphic.Clear(Color.Black);
_StrGraphic.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAliasGridFit;
_StrGraphic.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.Default;
_StrGraphic.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.None;
stringSize = _StrGraphic.MeasureString(str, _font, 4096, _strFormat);
_StrGraphic.DrawString(str, _font, Brushes.White,
new Rectangle(
0,
0,
Convert.ToInt32(Math.Ceiling(stringSize.Width)) + 1,
Convert.ToInt32(Math.Round(stringSize.Height)) + 1),
_strFormat);
в Android:

Код: Выделить всё

Bitmap bmp = Bitmap.CreateBitmap(309, 36, Bitmap.Config.Argb8888);

Canvas canvas = new(bmp);

canvas.DrawColor(Color.ParseColor("#000000"));
canvas.DrawFilter = new PaintFlagsDrawFilter(0, PaintFlags.AntiAlias | PaintFlags.FilterBitmap);

Paint paint = new()
{
Color = Color.ParseColor("#ffffff"),
AntiAlias = true
};
Typeface arail = Typeface.Create("Arial", TypefaceStyle.Normal);
paint.SetTypeface(arail);
paint.TextSize = 12;
string str1 = str.Substring(start, len);

paint.FilterBitmap = true;

Rect rect1 = new();

paint.GetTextBounds(str1, 0, str1.Length, rect1);

canvas.DrawText(str1, 0, rect1.Height(), paint);
Я также пытаюсь скопировать шрифт Windows Arial TTF в ресурсы Android

Код: Выделить всё

 arail = Typeface.CreateFromAsset(Assets, "fonts/ARIALN.TTF");
но не работает.

Подробнее здесь: https://stackoverflow.com/questions/791 ... n-winforms
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как нарисовать текст в Android так, как я нарисовал его в WinForms?
    Anonymous » » в форуме C#
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Как нарисовать текст в Android так, как я нарисовал его в WinForms?
    Anonymous » » в форуме Android
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Как нарисовать текст в Android так, как я нарисовал его в WinForms?
    Anonymous » » в форуме Android
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Как нарисовать текст в Android так, как я нарисовал его в WinForms?
    Anonymous » » в форуме Android
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Как нарисовать текст в Android так, как я нарисовал его в WinForms?
    Anonymous » » в форуме Android
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Android»