1

の周りに流れるサイズSurfaceViewの境界線を表示したいものがあります。アスペクト比の「SurfaceView」が必要なので、比率のサイズを維持しました。20dpSurfaceView16:9SurfaceView161x28616:9

サーフェス ビューの周囲に境界線を表示するには、XML で次の実装を行います。

<RelativeLayout 
    android:id="@+id/my_surface_view_holder"
    android:layout_height="161dp"
    android:layout_width="286dp"
    android:padding="20dp"
    android:focusable="true"
    android:clickable="true"
    android:background="#fff"
    >
    <SurfaceView 
        android:id="@+id/video_surface_view"
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent" />
</RelativeLayout>

上記のコードは境界線をSurfaceView適切に表示しますが、境界線を表示するためにパディングを指定したため、ビデオの 16:9 アスペクト比が壊れます20dp

境界線のサイズに応じて縦横比を調整すると、境界線が均等に設定されず、上/下で異なり、左/右で異なります。

では、アスペクト比を 161x286 のサイズに維持して、SurfaceView の周囲に境界線を表示するにはどうすればよいでしょうか。

ありがとう。

4

1 に答える 1

3

私はその方法を見つけました、そしてそれはかなり簡単でした。SurfaceView のサイズを 161X286 に設定し、RelativeLayout を幅と高さの内容をラップするように設定し、SurfaceView の周囲に境界線を表示する RelativeLayout にパディングを設定します。

したがって、私の SurfaceView は 16:9 のアスペクト比を維持し、背景の境界として RelativeLayout を持っています。

コメントありがとうございます。

于 2012-06-06T12:54:33.403 に答える