Я пытаюсь использовать SurfaceView. Поэтому я создал виджет SurfaceView в файле макета, как показано ниже в коде. Проблема в том, как установить вес SurfaceView? Как показано ниже в коде я поставил:Как заставить SurfaceView занять конкретную секцию экрана
android:layout_weight=".4"
, но по-прежнему SurfaceView занимает экран eintire, что я хочу сделать SurfaceView занимает только 40% экрана. Я также ссылался на сообщение в этой ссылке SurfaceView in Layout , но он не показывает, как установить вес SurfaceView из XML-файла.
Пожалуйста, дайте мне знать, как установить вес SurfaceView из XML-файла.
код:
<?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>
«но все же у меня есть один SurfaceView, который занимает весь экран». Откуда вы знаете, есть только один SurfaceView? –
@ Code-Apprentice, потому что я указал в коде, приведенном в разделе обновления выше. У меня есть два вида поверхности внутри linearlayout, и каждому из них присваивается layout_weoght = .5, а во время выполнения i появляется только одно представление поверхности, и оно занимает весь экран – user2121