如何在 TextView 中将文本与其复合可绘制对象对齐?
Posted
技术标签:
【中文标题】如何在 TextView 中将文本与其复合可绘制对象对齐?【英文标题】:How to align the text with its compound drawables in TextView? 【发布时间】:2013-01-14 10:08:44 【问题描述】:我不知道如何在 TextView 中设置文本及其复合可绘制对象(小于文本)的对齐方式。似乎默认对齐方式是居中,但我需要将它们按边缘对齐。
PS:如果复合可绘制对象大于文本,android:gravity
效果很好,但如果更小,则效果不佳。
【问题讨论】:
【参考方案1】:听起来您正在为android:drawableLeft
使用固定尺寸的图像。
尝试使用nine-patch 或通过 XML 资源文件定义可绘制对象。通过这种方式,您的可绘制对象的尺寸将拉伸以按照您想要的方式与TextView
对齐。
【讨论】:
九个补丁的好主意!但是我对第二种解决方案仍然有些困惑。以“android:drawableLeft”为例,如何编写bridge XML drawable将文本与复合图像顶部对齐? 我还没有真正尝试过,但是你应该可以使用<bitmap>
in conjunction with android:gravity
。【参考方案2】:
我有一个类似的问题,我想使用 setCompoundDrawables 为浮动提示设置顶部可绘制对象,但是 TextView (EditText) 将顶部可绘制对象设置为居中,而不管其宽度是多少。
我正在使用自定义的 Drawable,在它的 draw 方法中,我抓取了 clipBounds,并在其顶部向左平移以返回到 TextView 的 0,0 位置。
另一种简单的方法是从 0,0 获取矩阵和 mapPoints,然后将它们的负数转换回 0,0。
【讨论】:
以上是关于如何在 TextView 中将文本与其复合可绘制对象对齐?的主要内容,如果未能解决你的问题,请参考以下文章
如何在xml中设置复合可绘制文本视图的高度和宽度? [关闭]