我正在尝试使用SurfaceView。因此,我在布局文件中创建了一个SurfaceView小部件,如下代码所示。我的问题是如何为SurfaceView设置权重?
如下所示,我设置了代码:
android:layout_weight=".4"
但是SurfaceView仍然占据着整个屏幕,我想要的是使SurfaceView仅占据屏幕的40%。我还引用了此链接SurfaceView in Layout中的帖子
但它没有显示如何从xml文件中为SurfaceView设置权重。
请让我知道如何从xml文件设置SurfaceView的权重。
码:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.surfaceview_00.MainActivity">
<SurfaceView
android:id="@+id/mainActivity_surfaceView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight=".4"/>
</RelativeLayout>
更新:
我也尝试了下面的代码,但仍然有一个SurfaceView占据了整个屏幕。我希望在运行以下代码后,有两个SurfaceViews各自占据屏幕的一半,但我只有一个
码:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.surfaceview_00.MainActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:weightSum="2">
<SurfaceView
android:id="@+id/mainActivity_SurfaceView1"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
<SurfaceView
android:id="@+id/mainActivity_SurfaceView2"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"/>
</LinearLayout>
</RelativeLayout>
最佳答案
RelativeLayout
不支持layout_weight
。您需要为此使用LinearLayout
。
在https://developer.android.com/guide/topics/ui/layout/linear.html阅读更多
但基本上将其更改为如下所示:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:orientation="vertical"
android:layout_height="match_parent"
android:weightSum="1">
<SurfaceView
android:id="@+id/mainActivity_surfaceView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight=".4"/>
</LinearLayout>
关于android - 如何强制SurfaceView占据屏幕的特定区域,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40531178/