I have managed to get a frame with title using the following technique.
Use FrameLayout
for the overall layout.
Inside add another layout for your main content - this can be anything. For the background of this layout, use a custom XML drawable with stroke
to draw the frame. Make sure to add margins in this layout, especially marginTop
, as you need some room to display the title of the frame. Also add some padding to make it look nicer.
Use TextView
with opaque background and some paddings as the title. Set marginLeft
on it to a reasonable value to offset the title from the left.
Here's my XML for this:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:background="@android:color/white">
<!-- This is the main content -->
<RelativeLayout
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:layout_margin="15dp" android:background="@drawable/frame"
android:orientation="vertical" android:padding="20dp">
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content"
android:text="Main Content" android:layout_centerInParent="true" />
</RelativeLayout>
<!-- This is the title label -->
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content"
android:background="@android:color/white" android:padding="5dp"
android:text="Testing"
android:layout_marginLeft="30dp" android:textColor="@android:color/black" />
</RelativeLayout>
When executed, I get this on the app:
Feel free to tweak the margins/paddings to align the title the way you need.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…