Подтвердить что ты не робот

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>
4b9b3361

Ответ 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));
}