Android VideoView, как масштабировать, как ImageView масштаб типа fitXY?
Я разместил ImageView и VideoView в RelativeLayout.
ImageView можно масштабировать, чтобы заполнить весь макет с помощью scaleType="fitXY"
. Однако для VideoView аналогичного атрибута шкалы не существует. Кстати, я скрываю управление видео с помощью set setMediaController(null)
и отображается только видеоконтент. Возможно ли масштабировать VideoView без сохранения пропорций?
Вот пример макета.
<RelativeLayout
android:layout_width="280dp"
android:layout_height="200dp">
<ImageView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/image"
android:scaleType="fitXY" />
<VideoView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/video"
android:visibility="invisible"
android:layout_centerInParent="true" />
</RelativeLayout>
Ответы
Ответ 1
Попробуйте поместить VideoView
внутри RelativeLayout
и установить ниже свойства для показа видео в полноэкранном режиме:
<VideoView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/video"
android:visibility="invisible"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"/>
Примечание.. Установите значение видимости в соответствии с вашими требованиями.
Ответ 2
Мой способ переопределяет метод onMeasure VideoView
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
setMeasuredDimension(getDefaultSize(getSuggestedMinimumWidth(), widthMeasureSpec),
getDefaultSize(getSuggestedMinimumHeight(), heightMeasureSpec));
}