안드로이드 : 뷰 추가/배치 관리

이 항목에서는 추가 된보기의 레이아웃을 관리하는 방법을BrightcoveVideoView .

레이아웃 이해

Android 용 Brightcove Native SDK로 작업하기 전에 Android 앱에서 레이아웃을 관리하고 사용자 지정하는 방법을 이해하는 것이 좋습니다.

검토하여 시작하십시오. Android 개발자 사용자 인터페이스안내서.

레이아웃 매개 변수 재정의

그만큼BrightcoveVideoView의 부모 클래스입니다BrightcoveExoPlayerVideoView .

추가하는 경우View ~로BrightcoveVideoView , 그런 다음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);
        }
    }
}

이것은SurfaceView그리고ImageView에 대해 지정된 레이아웃 매개 변수를 가져 오려면BrightcoveVideoView .

레이아웃 매개 변수를 적용 할 수 있지만SurfaceViewImageView아이들이있을 때 추가 아이들이 반응하기 어려울 것입니다. BrightcoveVideoView레이아웃 매개 변수가 업데이트되었습니다.

Brightcove는 재정의를 제안합니다. setLayoutParams()LinearLayout너비를 통과하지만 높이와 중력은 수정되지 않은 상태로 둡니다.

보기를 추가해야하는 경우

추가 할 응용 프로그램ViewBrightcoveExoPlayerVideoView플레이어 앞에 개체를 추가하는 목적에 따라 달라질 수 있습니다. 예를 들어보기를 사용하여 추가 / 제거 할 수 있습니다. TextViews캡션을 표시하거나 앱에서 컨트롤러의 레이아웃을 추가합니다.

그만큼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>