Как динамически перемещать текстовое представление на экране? (framelayout)

#android #textview

#Android #текстовое представление

Вопрос:

У меня есть приложение, которое показывает вид камеры на экране в FrameLayout. Экран находится в фиксированном ландшафтном режиме.

Мне нужно написать текстовое представление с динамически определяемыми координатами экрана. Координаты определяются в процентах, например :

напишите текстовое представление на координатах x = 80% экрана и y = 20% экрана. напишите текстовое представление на координатах x = 35% экрана и y = 55% экрана.

как это сделать? у меня уже есть проценты, мне нужно только знать, как их использовать, чтобы записать текстовое представление в нужной позиции FrameLayout

приветствуются примеры кода

я пытался с этим, но не работает, текстовое представление не перемещается:

 TextView poi..... etc etc
poi.setLayoutParams(new LayoutParams((int)(w*(xCoordPercent/100)), h/2));
  

Спасибо

Комментарии:

1. Я думаю, что вы пытаетесь анимировать текстовое представление. Если это так, вам следует ознакомиться с учебными пособиями об этом, это довольно просто для таких базовых движений, и это может дать вам идеи, пока вы ждете дополнительных ответов здесь.

2. нет, нет, я не хочу его анимировать, я только хочу перемещать текст на экране слева направо, сверху вниз, в зависимости от динамически генерируемых координат. Позже я буду использовать изображение, но сейчас мне нужно добавить текстовое представление

Ответ №1:

 MarginLayoutParams params=(MarginLayoutParams )poi.getLayoutParams();
params.leftMargin=80;
//here 100 means 100px,not 80% of the width of the parent view
//you may need a calculation to convert the percentage to pixels. 
params.topMargin=50;
poi.setLayoutParams(params);
  

Это может помочь.

Комментарии:

1. это не работает. POI по-прежнему отображается в верхнем левом углу экрана. Я должен перерисовать окно или что-то в этом роде? в FrameLayout также есть cameraview. Что не так? я застрял