Android在SurfaceView周围应用边框
我有一个Android在SurfaceView周围应用边框,android,Android,我有一个SurfaceView,我想为其显示一个20dp大小的边框,该边框将围绕SurfaceView流动。我需要在16:9纵横比中使用“SurfaceView”,因此我将SurfaceView的大小保持在161x286的比例中 要在曲面视图周围显示边框,我有以下XML实现 <RelativeLayout android:id="@+id/my_surface_view_holder" android:layout_height="161dp" android:l
SurfaceView
,我想为其显示一个20dp
大小的边框,该边框将围绕SurfaceView
流动。我需要在16:9
纵横比中使用“SurfaceView”,因此我将SurfaceView
的大小保持在161x286
的比例中
要在曲面视图周围显示边框,我有以下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大小来显示它周围的边框呢
谢谢。我找到了路,而且很简单。我将SurfaceView的大小设置为161X286,然后将RelativeLayout设置为wrap contains(宽度和高度),然后将padding设置为RelativeLayout(显示SurfaceView周围的边框) 因此,我的SurfaceView保持16:9的纵横比,并且它的背景边界为RelativeLayout
谢谢大家的评论 我不太明白。你想要背景,边框,然后是表面吗?在RelativeLayout的左侧和右侧保留边距如何?是的,我需要曲面的边框,为此,我在相对布局中添加了曲面视图,该相对布局设置了背景图像,并设置了一个填充,作为曲面到曲面的边框视图。这是我使用的技巧,但它打破了我的视频的纵横比。保持相对布局高度和宽度分别为(161+20),(286+20)。试试这个,我希望它对你有用。@Android_疯狂:161+20和286+20的纵横比不是16:9。@PP因为你给relativelayout加了填充,所以surfaceview的高度和宽度分别是161-20和286-20,打破了16:9的比例。如果你把高度和宽度增加20,那么surfaceview的高度和宽度将是161和286这是16:9的比例。这是它背后的逻辑。如果你对这个逻辑感到满意,那么试试看会发生什么。