Как выровнять текст с его составными объектами в TextView?

Я не могу понять, как установить выравнивание текста и его составной прорисовки (меньше, чем текст) в TextView. По умолчанию выравнивание по центру, но мне нужно выровнять их по краю.

PS: android:gravity отлично работает, если составной объект больше, чем текст, но не меньше.

2 ответа

Решение

Похоже, вы используете изображение с фиксированными размерами для android:drawableLeft,

Попробуйте использовать патч из девяти или определить рисование через файл ресурсов XML. Таким образом, размеры вашего Drawable будут растягиваться, чтобы выровнять в TextView так, как вы хотите.

У меня была похожая проблема в том, что я хотел использовать setCompoundDrawables, чтобы установить верхний элемент рисования для плавающей подсказки, однако TextView (EditText) устанавливает верхний элемент для рисования в центр, независимо от его ширины.

Я использую пользовательский Drawable, и внутри его метода draw я беру clipBounds и перевожу его верхнюю часть влево, чтобы вернуться в позицию 0,0 в TextView.

Другой способ сделать это легко - получить значения Matrix и mapPoints от 0,0, затем взять их отрицательное значение и перевести обратно в 0,0 таким образом.

Другие вопросы по тегам