gpt4 book ai didi

android - 将屏幕分为SurfaceView和xml布局

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:13:59 24 4
gpt4 key购买 nike

MyActivity 具有覆盖所有屏幕的 setContentView(MySurfaceView)

我想把屏幕分成两部分:屏幕的前 2/3 必须被 MySurfaceView 占据,最后的 1/3 通过 my_activity_layout.xml

我该怎么做?谢谢。

enter image description here

编辑

感谢您的回答,但我不知道如何将它们应用到我的案例中。明确地说,这些是我的对象:

enter image description here

enter image description here

最佳答案

解决方案:

要在布局中附加一个 xml 文件,您可以使用 <include>标签。

重用布局特别强大,因为它允许您创建可重用的复杂布局。例如,是/否按钮面板,或带有描述文本的自定义进度条。 More

ConstraintLayout 的帮助下,您可以拥有问题中所示的功能.当然,也有使用遗留的解决方案 <LinearLayout>使用称为 weights 的东西,但正如警告所说,Weights is bad for performance

为什么权重对性能不利?

Layout weights require a widget to be measured twice. When a LinearLayout with non-zero weights is nested inside another LinearLayout with non-zero weights, then the number of measurements increase exponentially.

那么让我们继续使用 <ConstraintLayout> 来解决这个问题.

假设我们有一个名为 my_activity_layout.xml 的布局文件我们使用下面的代码来实现我们想要的:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">

<SurfaceView
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toTopOf="@+id/guideline"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

<android.support.constraint.Guideline
android:id="@+id/guideline"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.67" />

<include
android:id="@+id/news_title"
layout="@layout/my_activity_layout"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/guideline" />

</android.support.constraint.ConstraintLayout>

如您所见Guideline帮助我们获得 2/3,即屏幕的 66.666 ~ 67%,然后你可以约束你的 SurfaceView和你的布局使用 <include>标记您的 Activity 。

还可以看到需要的结果:

Desired Result

您只需复制粘贴解决方案,看看它是否按预期工作。

关于android - 将屏幕分为SurfaceView和xml布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53106904/

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