2012-05-30 74 views
1

我有一個SurfaceView,我想要顯示20dp大小的邊框,這個邊框將圍繞SurfaceView流動。我需要16:9長寬比的'SurfaceView',所以我保留SurfaceView的尺寸爲161x286,這是16:9的比例。Android在SurfaceView周圍應用邊框

要在表面視圖周圍顯示邊框,我在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填充顯示邊框。

如果我根據邊框尺寸調整縱橫比,那麼邊框不是均勻設置,上/下不同,左/右不同。

所以我怎樣才能顯示邊界周圍的SurfaceView保持其縱橫比保持大小161x286。

謝謝。

+0

我不確定我的理解。你想要背景,邊框還是表面?如何將RelativeLayout外部的邊界留在它的左側和右側? – Steelight

+0

是的,我需要Surface的邊框,爲此我在相對佈局中添加了表面視圖,並且相對佈局具有背景圖像設置,以及作爲邊框到表面視圖的填充。這是我使用的技巧,但它打破了我的視頻的長寬比。 – User7723337

+0

保持你的相對佈局高度和寬度分別爲(161 + 20),(286 + 20)。試試這個,我希望它能爲你工作。 –

回答

2

我找到了方法,它非常簡單。我將SurfaceView的大小設置爲161X286,然後將RelativeLayout設置爲包含寬度和高度的包含,然後我將填充設置爲顯示圍繞SurfaceView的邊框的RelativeLayout。

所以我的SurfaceView保持16:9的縱橫比,它具有RelativeLayout,因爲它是背景邊框。

謝謝大家的意見。