Я не могу получить свой вид внутри своего вида карты

#android #android-layout #sinch #videocall

Вопрос:

Здесь я добавляю два разных вида в двух разных макетах

  1. Для Удаленного Видео
  2. Для локального видео, но addview для локального видео не подходит под cardview, как определено в xml-файле

Когда я попытался уменьшить размер удаленного просмотра до половины экрана, как показано на рисунке ниже, локальное видео идеально подходит для cardview, но когда мой удаленный просмотр в качестве родителя совпадает, это нарушает мое локальное видео в cardview

Рисунок 1. Когда Удаленное видео в качестве родителя соответствует Когда Удаленное видео в качестве родителя соответствует

Рисунок 2. Когда Размер Удаленного Видео Уменьшился Когда Размер Удаленного Видео Уменьшился

 <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto">


    <RelativeLayout
        android:id="@ id/remoteVideo"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"/>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:paddingVertical="10dp"
        android:background="@drawable/vdo_top_back">

        <TextView
            android:id="@ id/remoteUser"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:text="Ayush"
            android:textColor="#1E1E1E"
            android:maxLines="1"
            android:layout_marginHorizontal="20dp"
            android:fontFamily="@font/open_sans"
            android:textSize="28sp"/>

        <TextView
            android:id="@ id/callState"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:text="Ringing"
            android:textColor="#1E1E1E"
            android:fontFamily="@font/open_sans"
            android:textSize="14sp"
            android:textAllCaps="true" />

        <TextView
            android:id="@ id/callDuration"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:text="00:00"
            android:textColor="#1E1E1E"
            android:fontFamily="@font/open_sans"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textSize="13sp"/>
    </LinearLayout>

    <androidx.cardview.widget.CardView
        android:layout_width="150dp"
        app:cardCornerRadius="30dp"
        app:cardElevation="20dp"
        android:layout_alignParentRight="true"
        android:layout_height="200dp"
        android:layout_margin="10dp">
        <RelativeLayout
            android:id="@ id/localVideo"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"/>
    </androidx.cardview.widget.CardView>




    <RelativeLayout
        android:id="@ id/bottomPanel"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingHorizontal="15dp"
        android:background="@drawable/bottom_nav_back"
        android:layout_alignParentBottom="true">
        <de.hdodenhof.circleimageview.CircleImageView
            android:layout_width="70dp"
            android:layout_height="70dp"
            android:background="@drawable/callend_back"
            android:scaleType="centerCrop"
            android:padding="18dp"
            android:layout_marginTop="10dp"
            android:layout_marginBottom="10dp"
            android:layout_centerHorizontal="true"
            android:id="@ id/hangupButton"
            android:src="@drawable/ic_baseline_call_end_24"/>
        <RelativeLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_marginVertical="10dp"
            android:layout_below="@ id/hangupButton">
            <de.hdodenhof.circleimageview.CircleImageView
                android:layout_width="45dp"
                android:layout_height="45dp"
                android:background="?selectableItemBackground"
                android:layout_alignParentLeft="true"
                android:src="@drawable/ic_baseline_volume_up_24"/>
            <de.hdodenhof.circleimageview.CircleImageView
                android:layout_width="45dp"
                android:layout_height="45dp"
                android:layout_centerHorizontal="true"
                android:background="?selectableItemBackground"
                android:src="@drawable/ic_baseline_videocam_off_24"/>
            <de.hdodenhof.circleimageview.CircleImageView
                android:layout_width="45dp"
                android:layout_height="45dp"
                android:background="?selectableItemBackground"
                android:layout_alignParentRight="true"
                android:src="@drawable/ic_baseline_mic_off_24"/>
        </RelativeLayout>

    </RelativeLayout>



</RelativeLayout>
 
 remoteview.addView(rview)
localView.addView(lview)
 

заранее спасибо

Комментарии:

1. Что такое удаленный просмотр видео в точности? Интересно, не является ли это плохим взаимодействием между отсечением и тем, как отображается видео…

2. Хорошо, Удаленный просмотр-это мой относительный макет, в котором я добавляю свое удаленное видео, которое я получаю, когда кто-то отвечает на звонок, и добавляю это удаленное видео в качестве addView() для удаленного просмотра

3. Каким именно типом просмотра является удаленное видео? например, просмотр видео, просмотр поверхности и т. Д.

4. Это тип просмотра видео

5. Это может быть связано с тем, как SurfaceView (какой видеокласс является подклассом) отображает его содержимое . Я не уверен, возможно ли это в вашем случае, но переключение на TextureView вместо этого может заставить его работать. Потенциально также стоит зарегистрировать ошибку , если вы можете создать минимальный воспроизводимый пример проекта.