Я все еще новичок в андроиде, поэтому я не полностью знаком со всеми компонентами представления. Я борюсь с динамическим выравниванием кнопок вокруг круга.
То, что я пытаюсь достичь, - добавить 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 может быть приятным, если это возможно, но это не требование.