我在RelativeLayout
中有5个视图(顶部,底部,左侧,右侧,中间),然后将相机预览放入其中,得到以下结果。
我还想要的是在中心视图周围绘制边框。我使用了一个可绘制的形状,但它没有用。边框适用于除中心之外的相对布局中的所有视图。
如何在它周围画边框?
这是布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<RelativeLayout
android:id="@+id/camera_preview"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_gravity="center"
android:layout_weight="1" >
<View
android:id="@+id/top"
android:layout_width="match_parent"
android:layout_height="180dp"
android:layout_alignParentTop="true"
android:layout_gravity="center"
android:background="#80000000" />
<View
android:id="@+id/bottom"
android:layout_width="match_parent"
android:layout_height="180dp"
android:layout_alignParentBottom="true"
android:layout_gravity="center"
android:background="#80000000" />
<View
android:id="@+id/left"
android:layout_width="100dp"
android:layout_height="match_parent"
android:layout_above="@id/bottom"
android:layout_alignParentLeft="true"
android:layout_below="@id/top"
android:layout_gravity="center"
android:background="#80000000" />
<View
android:id="@+id/right"
android:layout_width="100dp"
android:layout_height="match_parent"
android:layout_above="@id/bottom"
android:layout_alignParentRight="true"
android:layout_below="@id/top"
android:layout_gravity="center"
android:background="#80000000" />
<View
android:id="@+id/center"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@id/bottom"
android:layout_below="@id/top"
android:layout_gravity="center"
android:layout_margin="25dp"
android:layout_toLeftOf="@+id/left"
android:layout_toRightOf="@id/right"
android:background="@drawable/border_red" />
</RelativeLayout>
<Button
android:id="@+id/button_capture"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Capture" />
</LinearLayout>
这是border_red.xml:
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#00000000"/>
<padding android:left="10dp" android:top="10dp"
android:right="10dp" android:bottom="10dp" />
<stroke android:color="#FF0000" android:width="5dp" />
</shape>
答案 0 :(得分:2)
这是因为您为View
提供了保证金,这对于该区域来说太过分了。这就是为什么您的中心View
不可见。替换您的中心View
使用下面的View
代码。这对我有用,希望它也适合你
例如
<View
android:id="@+id/center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@id/bottom"
android:layout_below="@id/top"
android:layout_gravity="center"
android:layout_toLeftOf="@+id/right"
android:layout_toRightOf="@+id/left"
android:background="@drawable/border_red" />
答案 1 :(得分:0)
替代解决方案: -
<LinearLayout
android:id="@+id/center"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@id/bottom"
android:layout_below="@id/top"
android:layout_gravity="center"
android:layout_margin="25dp"
android:layout_toLeftOf="@+id/left"
android:layout_toRightOf="@id/right"
android:background="#FF0000"
android:padding="5dp">
<View
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#00000000"/>
</LinearLayout>
答案 2 :(得分:0)
5dp
android:layout_height="5dp"
的高度减少到View
水平线
<View
android:id="@+id/view"
android:background="#FF4500"
android:layout_width="fill_parent"
android:layout_height="2dp"
android:layout_below="@+id/listview_id" />
垂直线
<View
android:id="@+id/view"
android:background="#FF4500"
android:layout_width="2dp"
android:layout_height="fill_parent" />