Я все еще новичок в Android, поэтому я не совсем знаком со всеми компонентами представления.
Я борюсь с динамическим выравниванием кнопок по кругу.
То, чего я пытаюсь добиться, это добавить n кнопок (n может измениться во время создания) к виду, который выглядит как прикрепленное изображение:
Я бы хотел избежать использования absoluteLayout (но я открыт для предложений, если это единственный способ решить эту проблему).
Я уже придумал расчет для x / y позиций для кнопок (пока игнорируем размер кнопки):
int iNumberOfButtons = 10;
double dIncrease = Math.PI * 2 / iNumberOfButtons,
dAngle = 0,
x = 0,
y = 0;
for( int i = 0; i < iNumberOfButtons; i++ )
{
x = 100 * Math.cos( dAngle ) + 200;
y = 100 * Math.sin( dAngle ) + 200;
dAngle += dIncrease;
// get button and set position?
}
Я думал об использовании этого кода из пользовательского представления, но из того, что я видел, представление должно быть разделено на подклассы из ViewGroup, чтобы иметь метод addView, а затем, похоже, только absoluteLayout позволяет устанавливать позиции x, y ... Я не знаю, как реализовать эту функцию.
Я мог бы добавить некоторые анимации к этому представлению позже, поэтому использование SurfaceView может быть полезным, если это возможно, но это не является обязательным требованием.