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

我必须通过编码随机旋转一个按钮(或内部文本,它是相同的). API级别中的任何button.setRotate(x)是否低于11?

最佳答案
好的,看看,答案是:它很复杂.

您可以使用旧动画框架旋转按钮,例如像这样:

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);

这里的问题是按钮看起来旋转,但无法正确单击.触发点击事件的坐标是按钮在旋转之前所在区域的坐标.

由于这不是一个非常好的解决方案,最好的办法是编写一个自定义视图,扩展Button类并在onDraw()中旋转按钮画布.在这种情况下,您还必须覆盖onMeasure().有关如何操作的信息,请参阅Custom Components.

除此之外,您可以尝试拦截按钮父布局中的单击事件,并在按钮当前坐标内发生单击时触发相应的事件.但这有点“hacky”.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...