BrightcoveVideoView
.Layouts verstehen
Bevor Sie mit dem Brightcove Native SDK für Android arbeiten, sollten Sie sich mit der Verwaltung und Anpassung von Layouts in Ihrer Android-App vertraut machen.
Beginnen Sie mit der Überprüfung der Android-Entwickler-Benutzeroberfläche Handbuch.
Layoutparameter überschreiben
Die BrightcoveVideoView
ist die Elternklasse der BrightcoveExoPlayerVideoView
.
Wenn Sie a hinzufügen View
zum BrightcoveVideoView
, dann müssen Sie das überschreiben setLayoutParams()
Methode auf der View
Kind, nur die Layoutparameter anzuwenden, die für das View
Kind.
Hier ist ein Beispiel mit dem setLayoutParams()
Methode:
@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);
}
}
}
Dies ermöglicht die SurfaceView
und der ImageView
um die Layoutparameter zu erhalten, die für die BrightcoveVideoView
.
Obwohl es möglich ist, die Layoutparameter nur auf die SurfaceView
und ImageView
Kinder, wäre es für weitere Kinder schwierig zu reagieren, wenn die BrightcoveVideoView
hat seine Layout-Parameter aktualisiert.
Brightcove schlägt Überschreiben vor setLayoutParams()
in dem LinearLayout
Kind so, dass es durch die Breite geht, aber die Höhe und Schwerkraft unverändert lässt.
Wann eine Ansicht hinzugefügt werden sollte
Anwendungen zum Hinzufügen von a View
in dem BrightcoveExoPlayerVideoView
kann je nach Ziel variiert werden, um ein Objekt vor dem Player hinzuzufügen. Beispielsweise können Sie Ansichten zum Hinzufügen/Entfernen verwenden TextViews
um die Bildunterschriften anzuzeigen oder ein Layout für den Controller in der App hinzuzufügen.
Die BrightcoveExoPlayerVideoView
Variante erstreckt sich von der BaseVideoView
das erweitert das Android FrameLayout
. Dies bedeutet, dass Sie eine Ansicht zum hinzufügen können BrightcoveExoPlayerVideoView
genauso wie du es machen würdest FrameLayout
.
Hier ist ein Beispiel in der Datei activity_main.xml einer Android-App:
<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>