我正在创建一个Camera应用程序,我想限制相机预览居中,大约占手机屏幕总大小的60%。
如果还有其他选择,请告诉我。
感谢。
答案 0 :(得分:0)
除非我不完全理解使用android:padding
为您的布局提供空间的问题,否则您应该能够使用android:layout_margin
来实现相同的目标,但要克服您提到的问题。添加填充会在View的边框与其内容之间创建空间。但是,添加边距会在视图边框与其父边框之间创建空间,因此内容仍会将视图本身填充到边缘。但是,您仍然无法根据直接来自XML的百分比来定义视图间距...您需要将边距定义为静态或在Java代码中应用LayoutParams
,您可以在此基础上计算所需的边距当前的屏幕尺寸。
另一种选择是利用嵌套android:layout_weight
内的LinearLayout
属性。计算出的权重总和可以为您提供直接用XML查找的60%。像这样:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:weightSum="1.0" >
<LinearLayout
android:orientation="vertical"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.6"
android:gravity="center"
android:weightSum="1.0">
<SurfaceView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.6" />
</LinearLayout>
</LinearLayout>
SurfaceView
是相机预览的位置,现在所有方面都占据屏幕的20%。如果您想在此预览上方或下方放置内容,您显然希望将整个块放入RelativeLayout
或FrameLayout
以及其他组件。
HTH!