Android. Изображение в EditText - PullRequest
       8

Android. Изображение в EditText

0 голосов
/ 14 октября 2011

Я хочу создать простой калькулятор. Одна из моих целей - место в полевых изображениях EditText со специальными математическими символами, такими как квадратный корень, пи ... Ф.э. :

2/34*sqrt(121)

Здесь я хочу разместить изображения вместо деления, умножения символов, строки sqrt. как я могу это сделать?

Ответы [ 2 ]

1 голос
/ 14 октября 2011

Еще несколько вопросов: Действительно ли он должен быть редактируемым, т. Е. Пользователь может вводить текст непосредственно в него? Если так, как это будет работать? когда они введут '*', он поймет это и заменит его на ваш png? Было бы приемлемо, если бы он не прерывал их при вводе, а вместо этого сразу после завершения ввода всей строки?

Лучший ответ, который у меня есть на данный момент: EditText не поддерживает это по умолчанию. Скорее всего, вам придется создать свой собственный вид, представляющий собой некий вид гибридного редактирования EditText и LinearLayout, который может содержать ImageViews с вашими png-файлами. Если пользователь не должен редактировать его, это будет проще, потому что вы можете сделать свой пользовательский вид LinearLayout и добавить TextView и ImageViews с соответствующим текстом и изображениями, установленными в них. Если он действительно должен быть редактируемым, это вызовет большую сложность. Вам придется использовать TextChangedListener, чтобы вытащить каждый символ по мере его ввода и заменить его ImageView, если это будет необходимо. Мне кажется, что трудная часть будет знать, где расположить ImageView, и, имея EditText, знать, что вы хотите, чтобы он поднял текст с другой стороны изображения. Я не уверен, как ты справишься с этим. Возможно, лучшее решение - у вас есть EditText, в который они набирают текст, а затем у вас есть свой пользовательский вид в качестве экранного представления. Таким образом, вам не нужно беспокоиться о размещении изображений поверх текста редактирования и правильном перемещении курсора к правой стороне изображения.

0 голосов
/ 14 октября 2011

Я бы посоветовал взглянуть на свободно доступный шрифт, включающий математические символы (какой-то быстрый поиск показал проект StixFont ), затем просто добавьте этот шрифт в ваши активы и установите его в качестве гарнитуры.,Вам все еще, вероятно, понадобится TextWatcher / TextChangedListener, как предложил Тим (если только вы не используете свою собственную клавиатуру для ввода символов), но это решит проблему с попыткой вставить изображения в текстовое поле, а также сохранит векторкачество, обеспечиваемое шрифтами, по сравнению с растровым изображением, встроенным в текстовое поле.

...