Intereting Posts
Как использовать аутентификацию дайджеста в android? Android – фрагмент .replace () не заменяет содержимое – помещает его поверх Существует ли ограничение на путь рисования с помощью Geocoder (Android)? Android: битмапы, загруженные из галереи, поворачиваются в ImageView Проблема с всплывающим меню аппаратного обеспечения с Appcompat Как заполнить Android ListView информацией из запроса Firebase Как поддерживать платную и бесплатную версию приложения Панель действий Android с двумя растянутыми кнопками Как использовать API SoundCloud в Java (приложение для Android) Разница между e.getMessage () и e.getLocalizedMessage () Как связать одно и то же свойство Google Analytics для Android и iOS для AdMob Как я могу перезвонить на Android, используя OAuth для Twitter? Как настроить пользовательские шрифты на EditText Android Кордова – обнаруживает, что приложение находится в фоновом режиме Открыть несколько изображений в намерениях галереи

Изменение абсолютной позиции с помощью FrameLayout

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

Но я не могу заставить это работать, это мои две попытки:

public void showVideo(RectF bounds) { FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) video.getLayoutParams(); params.width = (int) bounds.width(); params.height = (int) bounds.height(); int x = (int) viewer.getPageXOffset(); int y = (int) viewer.getPageYOffset(); video.setPadding((int) (x + bounds.left), (int) (y + bounds.top), (int) (x + bounds.right), (int) (y + bounds.bottom)); video.setLayoutParams(params); video.invalidate(); video.setVisibility(View.VISIBLE); video.setFocusable(true); video.setFocusableInTouchMode(true); video.requestFocus(); } 

А также:

 public void showVideo(RectF bounds, final String videoUrl) { FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) video.getLayoutParams(); params.width = (int) bounds.width(); params.height = (int) bounds.height(); int x = (int) (viewer.getPageXOffset() + bounds.left); int y = (int) (viewer.getPageYOffset() + bounds.top); params.leftMargin = x; params.topMargin = y; video.setLayoutParams(params); video.invalidate(); video.setVisibility(View.VISIBLE); video.setFocusable(true); video.setFocusableInTouchMode(true); video.requestFocus(); } 

Но в обоих случаях VideoView отображается в v (0,0) (левый верхний угол).

Он должен работать, когда вы устанавливаете гравитацию в LayoutParams.

Пытаться

 params.gravity = Gravity.LEFT | Gravity.TOP; 

для начала.