Хорошо, посмотрел, и ответ: это сложно.
Вы можете вращать кнопку, используя старую среду анимации, например, вот так:
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()
в этом случае.См. Пользовательские компоненты , чтобы узнать, что делать.
Кроме того, вы можете попытаться перехватить события щелчка от родительского макета кнопок и вызвать соответствующее событие, когда щелчок произошел в пределах текущих кнопок.координаты.Хотя это несколько "хакерски".