2012-03-19 2 views
3

Одна из проблем, с которыми я сейчас сталкиваюсь, отображает сложные тексты (английский + персидский/арабский). Тексты с английскими и персидскими/арабскими буквами не отображаются в правильном порядке. Для решения этой проблемы я создал библиотеку Bitmap Font, которая правильно рисует эти сложные тексты. Теперь я хочу преобразовать все тексты во всех виджетах моей программы в их растровый эквивалент. Например, если у меня есть TextView в моей программе, я хочу получить его текст, преобразовать его в растровое изображение с моей библиотекой шрифтов растрового изображения и, наконец, заменить его в TextView. Задача нахождения общего решения, которое может быть применено к любому виджет, который может отображать текст, как ListView, EditText, меню, ...Использование растрового шрифта для отображения и редактирования текстов

enter image description here

+0

Возможно, вы имели в виду двунаправленный? –

+0

Точно. Я имею в виду алгоритм BIDI. – Mbt925

ответ

2

Вы можете попробовать глядя на исходный код для TextView и изменить он должен удовлетворить ваши потребности (т. е. всякий раз, когда пользователь вводит символ с помощью IME, фиксирует событие и вставляет правильный растровый символ в ваш пользовательский вид ...)

+0

Я хочу сделать это для всех виджетов, по-твоему, это займет много времени. – Mbt925

1

Вы можете использовать библиотеку шрифтов в C++ и отобразить правильные шрифт , хотя бит длина

2

Вы видели Arabic Reshaper из всего, что я понял, его можно использовать для правильного отображения текстов, содержащих как символы RTL (арабский), так и LTR.

+0

В этом решении будет исправлено форматирование слов, а не порядок слов в предложении. – Mbt925