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