【发布时间】:2011-12-05 20:09:15
【问题描述】:
我想旋转 API 级别 8 的 Android 视图。例如,我想将 EditText 旋转 90 度,这样当用户在左对齐的 EditText 中输入文本时,第一个字符位于底部(旋转 90度)和后续字符向上输入。
我首先尝试使用持续时间为 0 的动画,但您仍然看到场旋转。不幸的是,这是一个非首发。如果我能找到一种完全隐藏动画的方法,这个方法看起来是最简单的。
然后,我尝试在 onDraw 中旋转画布,这对于方形视图非常有用,但对于非方形视图(而且我不控制 EditText 的尺寸)来说不是很好。我尝试了各种剪裁和翻译画布的尝试,但是虽然我可以在文本输入开始时让光标进入视野,但一旦有人开始输入更多内容,它就会做一些奇怪的事情(通常内容会消失在视野之外) .
我还尝试在 onMeasure 中制作 View 正方形,然后在 onDraw 中旋转画布,然后将 View 尺寸放回后续 onMeasure 中。前两个步骤效果很好。但是第三步产生了与上述类似的结果:在用户开始输入更多文本之前,一切看起来都还不错,此时字段文本做了一些奇怪的事情(通常会消失)。
有没有人能够成功地旋转非方形的 Android 视图(例如 EditText)而不使用动画,并且 API 级别为 8 或更低?
【问题讨论】:
标签: android animation view canvas rotation