在我的Android应用程序中,我只需要在四个角上使用边框,如图(白色)所示。
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_weight="6">
<VideoView
android:id="@+id/video1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center" />
<View
android:layout_width="150dp"
android:layout_height="150dp"
android:layout_centerInParent="true"
android:background="@drawable/cornerbg" />
</RelativeLayout>
cornerbg.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
<shape android:shape="rectangle" >
<solid android:color="@color/transparent" />
<stroke
android:width="1dp"
android:color="@color/btn_border"
android:dashWidth="50dp" // I tried this but not getting expected
android:dashGap="60dp"/>
</shape>
</item>
</layer-list>
如何为此编写xml?
请帮忙, 感谢
答案 0 :(得分:0)
不幸的是,我不相信我用来完成此操作的方法适用于需要透明背景的视图,但它应该适用于所有其他情况。只需使用下面的代码创建一个可绘制的资源,并将其设置为您想要“仅限角落”边框的任何视图的背景。
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<solid android:color="@android:color/white" />
</shape>
</item>
<item
android:left="10dp"
android:right="10dp">
<shape android:shape="rectangle">
<solid android:color="@android:color/black" />
</shape>
</item>
<item
android:top="10dp"
android:bottom="10dp">
<shape android:shape="rectangle">
<solid android:color="@android:color/black" />
</shape>
</item>
<item
android:left="2dp"
android:right="2dp"
android:bottom="2dp"
android:top="2dp">
<shape android:shape="rectangle">
<solid android:color="@android:color/black" />
</shape>
</item>
</layer-list>
答案 1 :(得分:0)
我知道这是很久以前的问题,但我遇到了同样的问题。
我通过创建辅助布局并包含在我的主布局中来解决。
我希望这个解决方案可以帮助某人。
main_layout.xml
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_weight="6">
<VideoView
android:id="@+id/video1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center" />
<include layout="@layout/camera_box_layout" />
</RelativeLayout>
camera_box_layout.xml
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="40dp"
android:background="@android:color/transparent">
<!-- Top horizzontal lines -->
<View
android:layout_width="100dp"
android:layout_height="2dp"
android:layout_alignParentTop="true"
android:layout_alignParentStart="true"
android:background="@android:color/darker_gray" />
<View
android:layout_width="100dp"
android:layout_height="2dp"
android:layout_alignParentTop="true"
android:layout_alignParentEnd="true"
android:background="@android:color/darker_gray" />
<!-- Top vertical lines -->
<View
android:layout_width="2dp"
android:layout_height="100dp"
android:layout_alignParentTop="true"
android:layout_alignParentStart="true"
android:background="@android:color/darker_gray" />
<View
android:layout_width="2dp"
android:layout_height="100dp"
android:layout_alignParentTop="true"
android:layout_alignParentEnd="true"
android:background="@android:color/darker_gray" />
<!-- Bottom horizzontal lines -->
<View
android:layout_width="100dp"
android:layout_height="2dp"
android:layout_alignParentBottom="true"
android:layout_alignParentStart="true"
android:background="@android:color/darker_gray" />
<View
android:layout_width="100dp"
android:layout_height="2dp"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:background="@android:color/darker_gray" />
<!-- Bottom vertical lines -->
<View
android:layout_width="2dp"
android:layout_height="100dp"
android:layout_alignParentBottom="true"
android:layout_alignParentStart="true"
android:background="@android:color/darker_gray" />
<View
android:layout_width="2dp"
android:layout_height="100dp"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:background="@android:color/darker_gray" />
</RelativeLayout>
答案 2 :(得分:0)
下面是不依赖于矩形的宽度和高度的可绘制对象,您可以将此可绘制对象用于纵向和横向。请调整边框的宽度和高度:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:width="8dp"
android:height="48dp"
android:gravity="top|left">
<shape android:shape="rectangle">
<solid android:color="#FFFFFF" />
</shape>
</item>
<item
android:width="48dp"
android:height="8dp"
android:gravity="top|left">
<shape android:shape="rectangle">
<solid android:color="#FFFFFF" />
</shape>
</item>
<item
android:width="8dp"
android:height="48dp"
android:gravity="top|right">
<shape android:shape="rectangle">
<solid android:color="#FFFFFF" />
</shape>
</item>
<item
android:width="48dp"
android:height="8dp"
android:gravity="top|right">
<shape android:shape="rectangle">
<solid android:color="#FFFFFF" />
</shape>
</item>
<item
android:width="8dp"
android:height="48dp"
android:gravity="bottom|left">
<shape android:shape="rectangle">
<solid android:color="#FFFFFF" />
</shape>
</item>
<item
android:width="48dp"
android:height="8dp"
android:gravity="bottom|left">
<shape android:shape="rectangle">
<solid android:color="#FFFFFF" />
</shape>
</item>
<item
android:width="8dp"
android:height="48dp"
android:gravity="bottom|right">
<shape android:shape="rectangle">
<solid android:color="#FFFFFF" />
</shape>
</item>
<item
android:width="48dp"
android:height="8dp"
android:gravity="bottom|right">
<shape android:shape="rectangle">
<solid android:color="#FFFFFF" />
</shape>
</item>
</layer-list>