【发布时间】:2016-03-30 15:41:36
【问题描述】:
如何创建一个支持椭圆的垂直TextView(旋转90°或-90°)(意味着如果视图中没有足够的空间,文本将被截断,并附加“...”以表示截断),可以用dp-values、wrap_content和match_parent调整大小?
所有其他 TextView 选项也应该得到尊重。
它也不应该需要任何额外的代码来执行旋转或其他操作,并且应该在 UI-Editor 中正确显示。
This solution 效果很好,但是,覆盖 onDraw() 会导致 ellipsize 和其他功能不再起作用。如果文本太大而无法显示,文本就会消失,否则会发生其他奇怪的事情。
下面做旋转ok,但是ellipsize是根据view的宽度计算的,如果转90°应该是根据height计算的。
protected void onDraw(Canvas canvas) {
canvas.save();
canvas.rotate(90, 0, getPaint().getTextSize() +5);
super.onDraw(canvas);
canvas.restore();
}
TextView 上的android:rotation 不是好的解决方案,因为定位和调整大小无法正常工作。
作为一个选项,视图应允许将文本旋转任意角度。
【问题讨论】:
-
您是否尝试过像这里解释的即时动画:stackoverflow.com/a/8959448/775894?
-
我在上面澄清了。不应使用控件本身之外的任何额外代码,它也应在 UI 编辑器中正确显示。
标签: android android-layout android-fragments