我必须通过编码随机旋转一个按钮(或里面的文本,它是相同的)。是否有 API 级别低于 11 的 button.setRotate(x)??
最佳答案
好吧,看了一下,答案是:这很复杂。
您可以使用旧的动画框架旋转按钮,例如像这样:
Button button = (Button) findViewById(R.id.button);
// rotation from 0 to 90 degrees here
RotateAnimation a = new RotateAnimation(0, 90);
a.setFillAfter(true);
a.setDuration(0);
button.startAnimation(a);
这里的问题是按钮看起来旋转了,但是不能正确点击。触发点击事件的坐标是按钮旋转前所在区域的坐标。
由于这不是一个很好的解决方案,您最好的选择可能是编写一个自定义 View 来扩展 Button 类并在 onDraw()
中旋转按钮 Canvas 。在这种情况下,您还必须覆盖 onMeasure()
。参见 Custom Components了解如何操作。
除此之外,您可以尝试拦截来自按钮父布局的点击事件,并在点击发生在按钮当前坐标内时触发适当的事件。不过,这有点“hacky”。
关于android - 在代码中旋转一个按钮(或里面的文字),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8589373/