0

親を埋めるように設定された VideoView があり、フルサイズのビデオで正常に動作します。ビデオのサイズが 4:3 以下の場合、解決策を見つけるのが難しいと感じていますが、iOS ディスプレイの同じアプリケーションはそれを表示します。フルスクリーンで。ビデオのサイズを変更して、ビデオ ビューと同じサイズで表示できますか?または、ビデオ ビューのコンテンツのサイズを変更できますか? 私は試した

view.measure(View.MeasureSpec.EXACTLY, View.MeasureSpec.EXACTLY);

しかし、結果はありません

4

1 に答える 1

5

次のようなカスタムビデオクラスを作成します。

public class CustomVideoView extends VideoView {

    protected int _overrideWidth = 480;

    protected int _overrideHeight = 360;

    public CustomVideoView(Context context) {
        super(context);
    }

    public CustomVideoView(Context context, AttributeSet set) {
        super(context, set);
    }

    public void resizeVideo(int width, int height) {
        _overrideHeight = height;
        _overrideWidth = width;
        // not sure whether it is useful or not but safe to do so
        getHolder().setFixedSize(width, height);
        //getHolder().setSizeFromLayout();
        requestLayout();
        invalidate(); // very important, so that onMeasure will be triggered

    }

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec)
    {
        setMeasuredDimension(_overrideWidth, _overrideHeight);
    }

}

クラスresizeVideoでは、画面の幅と高さをパラメーターとして使用するメソッドを使用します。

すべてが映画の比率と画面の比率に依存することを考慮に入れてください。同じ場合はフルスクリーンで表示されますが、異なる場合は幅/高さで調整されます。

于 2012-08-30T15:28:34.150 に答える