将表面视图缩小到一个盒子中

发布于 2024-11-29 14:50:29 字数 646 浏览 1 评论 0原文

我想将应用程序中当前的 SurfaceView

current surfaceview Look

更改为

wanted surfaceview Look

有没有办法在不使用 main.xml 的情况下做到这一点?

我正在尝试在运行时编写 GUI 代码。我可以通过覆盖 onMeasure() 并使用 setMeasuredDimension() 来实现当前的 SurfaceView (上图),但我想实现底部图片。绿色区域是屏幕的其余部分。

编辑:

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) 
{
    this.setMeasuredDimension(500, 300);
    param.gravity = Gravity.CENTER_VERTICAL;
}   

I would like to change the current SurfaceView in my app from

current surfaceview look

to

wanted surfaceview look

Is there a way to do this without using main.xml at all?

I'm trying to code the GUI in run-time. I can achieve the current SurfaceView (top picture) by overriding onMeasure() and using setMeasuredDimension(), but I would like to achieve the bottom picture. The green area is the rest of the screen.

EDIT:

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) 
{
    this.setMeasuredDimension(500, 300);
    param.gravity = Gravity.CENTER_VERTICAL;
}   

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

好听的两个字的网名 2024-12-06 14:50:29

您是否尝试过使用 android:layout_gravity 属性将视图置于布局中心?

相应的类将是 FrameLayout.LayoutParams,可能的重力列于此处。代码可能如下所示:

FrameLayout f = new FrameLayout(this);
ImageView test = new ImageView(this);
f.addView(test, new FrameLayout.LayoutParams(500, 300, Gravity.CENTER));

Have you tried using the android:layout_gravity-attribute to center your View in the Layout?

The corresponding class would be FrameLayout.LayoutParams, possible gravity's are listed here. The code could then look something like this:

FrameLayout f = new FrameLayout(this);
ImageView test = new ImageView(this);
f.addView(test, new FrameLayout.LayoutParams(500, 300, Gravity.CENTER));
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文