zhibo/android-app/app/src/main/res/layout/activity_broadcast.xml

192 lines
7.2 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#000000">
<!-- 使用 FrameLayout 包裹 OpenGlView实现 centerCrop 效果 -->
<FrameLayout
android:id="@+id/previewContainer"
android:layout_width="0dp"
android:layout_height="0dp"
android:clipChildren="true"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<com.pedro.rtplibrary.view.OpenGlView
android:id="@+id/openGlView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center" />
</FrameLayout>
<!-- 顶部工具栏 -->
<LinearLayout
android:id="@+id/topBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/bg_gradient_top"
android:orientation="horizontal"
android:padding="16dp"
app:layout_constraintTop_toTopOf="parent">
<ImageButton
android:id="@+id/btnClose"
android:layout_width="40dp"
android:layout_height="40dp"
android:background="@drawable/bg_circle_semi_transparent"
android:contentDescription="关闭"
android:src="@drawable/ic_close_24"
app:tint="@android:color/white" />
<View
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="1" />
<ImageButton
android:id="@+id/btnSwitchCamera"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_marginEnd="12dp"
android:background="@drawable/bg_circle_semi_transparent"
android:contentDescription="切换摄像头"
android:src="@drawable/ic_switch_camera_24"
app:tint="@android:color/white" />
<ImageButton
android:id="@+id/btnSettings"
android:layout_width="40dp"
android:layout_height="40dp"
android:background="@drawable/bg_circle_semi_transparent"
android:contentDescription="设置"
android:src="@drawable/ic_settings_24"
app:tint="@android:color/white" />
</LinearLayout>
<!-- 直播信息卡片(开播前显示) -->
<androidx.cardview.widget.CardView
android:id="@+id/cardLiveInfo"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="16dp"
app:cardBackgroundColor="#CC000000"
app:cardCornerRadius="12dp"
app:layout_constraintBottom_toTopOf="@id/bottomBar"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="16dp">
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="直播标题"
app:boxBackgroundColor="#33FFFFFF"
app:hintTextColor="@android:color/white">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/etTitle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:maxLength="30"
android:textColor="@android:color/white" />
</com.google.android.material.textfield.TextInputLayout>
</LinearLayout>
</androidx.cardview.widget.CardView>
<!-- 直播状态信息(开播后显示) -->
<LinearLayout
android:id="@+id/liveStatusBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="80dp"
android:background="@drawable/bg_rounded_semi_transparent"
android:gravity="center_vertical"
android:orientation="horizontal"
android:padding="8dp"
android:visibility="gone"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<View
android:layout_width="8dp"
android:layout_height="8dp"
android:background="@drawable/bg_circle_red" />
<TextView
android:id="@+id/tvLiveTime"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:text="00:00:00"
android:textColor="@android:color/white"
android:textSize="14sp" />
<TextView
android:id="@+id/tvViewerCount"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:drawableStart="@drawable/ic_person_24"
android:drawablePadding="4dp"
android:text="0"
android:textColor="@android:color/white"
android:textSize="14sp" />
</LinearLayout>
<!-- 底部控制栏 -->
<LinearLayout
android:id="@+id/bottomBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/bg_gradient_bottom"
android:gravity="center"
android:orientation="vertical"
android:padding="24dp"
app:layout_constraintBottom_toBottomOf="parent">
<!-- 开播按钮 -->
<com.google.android.material.button.MaterialButton
android:id="@+id/btnStartLive"
android:layout_width="200dp"
android:layout_height="56dp"
android:text="开始直播"
android:textSize="18sp"
app:cornerRadius="28dp"
app:backgroundTint="#FF4444" />
<!-- 停止直播按钮(开播后显示) -->
<com.google.android.material.button.MaterialButton
android:id="@+id/btnStopLive"
android:layout_width="200dp"
android:layout_height="56dp"
android:text="结束直播"
android:textSize="18sp"
android:visibility="gone"
app:cornerRadius="28dp"
app:backgroundTint="#666666" />
</LinearLayout>
<!-- 加载指示器 -->
<ProgressBar
android:id="@+id/progressBar"
android:layout_width="48dp"
android:layout_height="48dp"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>