gpt4 book ai didi

android - 使用 FrameLayout 改变绝对位置

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:26:53 28 4
gpt4 key购买 nike

我有一个 View 应该显示在某些图像的特定位置,我已经使用 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;

开始。

关于android - 使用 FrameLayout 改变绝对位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7068061/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com