安卓:新增檢視/管理配置

在本主題中,您將學習如何管理添加到視圖中的視圖的佈局。BrightcoveVideoView

了解佈局

在使用Brightcove Native SDK for Android之前,最好了解如何在Android應用程序中管理和自定義佈局。

首先查看Android開發人員用戶界面指南。

覆蓋佈局參數

BrightcoveVideoView是的父類BrightcoveExoPlayerVideoView

如果您要添加一個ViewBrightcoveVideoView,那麼您需要覆蓋setLayoutParams()的方法View孩子僅應用對佈局有意義的佈局參數View兒童。

這是一個例子setLayoutParams()方法:

@Override
public void setLayoutParams(ViewGroup.LayoutParams layoutParams) {
    Log.v(TAG, "setLayoutParams: " + layoutParams);
    super.setLayoutParams(layoutParams);
    if (layoutParams != null) {
        int childCount = getChildCount();
        FrameLayout.LayoutParams frameLayoutParams =
            new FrameLayout.LayoutParams(layoutParams.width, layoutParams.height);
        frameLayoutParams.gravity = Gravity.CENTER;
        for (int i = 0; i < childCount; i++) {
            getChildAt(i).setLayoutParams(frameLayoutParams);
        }
    }
}

這允許SurfaceViewImageView獲取為指定的佈局參數BrightcoveVideoView

儘管可以僅將佈局參數應用於SurfaceViewImageView孩子,當其他孩子在BrightcoveVideoView對其佈局參數進行了更新。

Brightcove建議覆蓋setLayoutParams()在裡面LinearLayout子,使其穿過寬度,但高度和重力保持不變。

何時添加視圖

應用程序添加一個View在裡面BrightcoveExoPlayerVideoView可以根據將目標添加到播放器前面的目標而有所不同。例如,您可以使用視圖來添加/刪除TextViews以顯示字幕,或在App中為控制器添加佈局。

BrightcoveExoPlayerVideoView變體從BaseVideoView擴展了Android FrameLayout。這意味著您可以將視圖添加到BrightcoveExoPlayerVideoView用同樣的方式FrameLayout

這是一個Android應用程序的activity_main.xml文件中的示例:


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity" >

    <com.brightcove.player.view.BrightcoveExoPlayerVideoView
        android:id="@+id/brightcove_video_view"
        android:layout_width="match_parent"
        android:layout_height="280dp"
        android:layout_gravity="center_horizontal|top">
        <RelativeLayout
            android:id="@+id/rl_elephant"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="left|bottom"
            >
            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text=“HELLO WORLD”
                android:textColor="@color/white"
                >
        </RelativeLayout>
    </com.brightcove.player.view.BrightcoveExoPlayerVideoView>
</LinearLayout>