Выровнять текст по центру ImageSpan по вертикали
у меня естьImageSpan
внутри куска текста. Я заметил, что окружающий текст всегда рисуется в нижней части текстовой строки - точнее, размер текстовой строки увеличивается с изображением, но базовая линия текста не смещается вверх. Когда изображение заметно больше, чем размер текста, эффект довольно неприглядный.
Вот пример, контур показывает границыTextView
:
Я пытаюсь расположить окружающий текст вертикально по отношению к отображаемому изображению. Вот тот же пример с синим текстом, показывающим желаемое местоположение:
Вот ограничения, с которыми я связан:
Я не могу использовать составные чертежи. Изображения должны отображаться между словами.Текст может быть многострочным в зависимости от содержания. Я не могу это контролировать.Мои изображения больше окружающего текста, и я не могу уменьшить их размер. Хотя приведенный выше пример изображения больше, чем фактические изображения (чтобы продемонстрировать текущее поведение), фактические изображения все еще достаточно велики, чтобы эта проблема была заметной.Я пытался использоватьandroid:gravity="center_vertical"
атрибут на TextView, но это не имеет никакого эффекта. Я верю, что это просто вертикально по центру тексталинии, но внутри текстовой строки текст по-прежнему рисуется внизу.
Мой текущий ход мыслей состоит в том, чтобы создать пользовательский диапазон, который смещает базовую линию текста на основе высоты строки и текущего размера текста. Этот интервал будет охватывать весь текст, и мне придется вычислять пересечение сImageSpan
s, поэтому я могу избежать смещения изображений. Это звучит довольно устрашающе, и я надеюсь, что кто-то может предложить другой подход.
Любая помощь приветствуется!