У меня есть RelativeLayout с ImageView и 8 TextView в нем. Я хочу динамически размещать метки вокруг этого изображения. Я думал, что лучший подход - повернуть изображение с интервалом 45 градусов и поместить метку в каждую позицию, однако Image/RelativeLayout не будет перерисовываться (даже если вызвано недействительность) до следующего предопределенного вызова onDraw и всех текстовых элементов после этого поместите в очередь сообщений для позиционирования, чтобы все TextViews располагались друг на друга на отметке 315 градусов.Android Layout/View Rotation/Positioning
Я пробовал отправлять Runnable в RelativeLayout в надежде, что он будет добавлен в очередь сообщений после вызова onDraw, но, к сожалению, он не работает, и у меня заканчиваются идеи.
Мой текущий код ниже, чтобы дать представление о том, что я пытаюсь сделать:
public void setupMenuText() {
final float scale = getResources().getDisplayMetrics().density;
setupMenuItemText((TextView)findViewById(R.id.menu_text_pos0), (72*scale)+0.5f);
setupMenuItemText((TextView)findViewById(R.id.menu_text_pos1), (72*scale)+0.5f);
setupMenuItemText((TextView)findViewById(R.id.menu_text_pos2), (72*scale)+0.5f);
setupMenuItemText((TextView)findViewById(R.id.menu_text_pos3), (72*scale)+0.5f);
setupMenuItemText((TextView)findViewById(R.id.menu_text_pos4), (72*scale)+0.5f);
setupMenuItemText((TextView)findViewById(R.id.menu_text_pos5), (72*scale)+0.5f);
setupMenuItemText((TextView)findViewById(R.id.menu_text_pos6), (72*scale)+0.5f);
setupMenuItemText((TextView)findViewById(R.id.menu_text_pos7), (72*scale)+0.5f);
}
public void setupMenuItemText(TextView pT, float pY) {
relativeLayout.setRotation(relativeLayout.getRotation()+45);
pT.setText("Some Text");
pT.setRotation(0);
pT.setGravity(Gravity.CENTER_HORIZONTAL);
pT.setX(0);
pT.setY(pY);
}
EDIT: Благодаря JSchools для ответа, было не совсем то, что мне нужно, но указал мне правильное направление и информация были точными.
Для кого-то еще с той же проблемой, центрирование текста внутри TextView не будет разрезано. Я вручную должен был установить размер TextView намного выше, чем его предполагаемое использование, чтобы он точно располагался относительно изображения.