android - 在代码中旋转一个按钮(或里面的文字)

标签 android button rotation

我必须通过编码随机旋转一个按钮(或里面的文本,它是相同的)。是否有 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/

相关文章:

java - Sprite 旋转无法正常工作 LibGDX

Android 插件保护不存在

java - 如何找到可以在大量 Android 手机上安全使用的最低 Java 版本?

java - 将多个 String 和 ImageView 添加到一个 View

java - 将指示器添加到按钮背景

javascript - 我只想旋转和移动图像! (Javascript, <canvas>, html 5)

java - 检测键盘何时在 Web View 中处于 Activity 状态

java - 我在 OnResume() 而不是 OnCreate() 中有必要的代码,但是当我转到不同的 Activity 然后返回时,ListView 中的数组数据仍然消失

android - 通过EditText输入unicode

javascript - 我需要一些数学帮助,将多个图像旋转到 JS 中的一个点