web-dev-qa-db-ja.com

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>
_
13
Jones

VideoViewRelativeLayout内に配置し、プロパティの下に設定して、ビデオを全画面表示します。

<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"/>

注:要件に基づいて可視性の値を設定してください。

30
Haresh Chhelana

私の方法はonMeasureメソッドVideoViewをオーバーライドすることです

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    setMeasuredDimension(getDefaultSize(getSuggestedMinimumWidth(), widthMeasureSpec),
            getDefaultSize(getSuggestedMinimumHeight(), heightMeasureSpec));
}
2
DaSqy Stc