如何设置边框到布局

fis*_*h40 3 android

我想为Relativelayout设置一个边框.我使relativelayout可点击并使用选择器来更改所选颜色,我也使用形状来舍入布局的角落.但是,当我选择layou时,形状将包括所有背景,包括边框.我找不到解决这个问题的方法.

这是我的main.xml

<RelativeLayout android:id="@+id/map_refresh"
                android:layout_height="fill_parent" android:layout_width="wrap_content" 
                android:background="@drawable/settings_selector_up" 
                android:padding="15dp"
                android:layout_marginLeft="15dip" android:layout_marginRight="15dip" android:layout_marginTop="5dip">
                <TextView android:id="@+id/Text1" 
                    android:layout_height="wrap_content" android:layout_width="wrap_content"
                    android:text="Map refresh period">
                </TextView>
                <TextView android:id="@+id/TextView09" 
                    android:layout_height="wrap_content" android:layout_width="wrap_content"
                    android:text="1 min" 
                    android:layout_alignParentRight="true"
                    android:paddingRight="5dp">
                </TextView>
            </RelativeLayout>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

这是我的settings_selector_up.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- Non focused states -->
    <item android:state_focused="false" android:state_selected="false"
        android:state_pressed="false" android:background="@drawable/settings_border_roundup" />
    <item android:state_focused="false" android:state_selected="true"
        android:state_pressed="false" android:drawable="@drawable/settings_border_roundup" />

    <!-- Focused states -->
    <item android:state_focused="true" android:state_selected="false"
        android:state_pressed="false" android:drawable="@drawable/settings_border_roundup" />
    <item android:state_focused="true" android:state_selected="true"
        android:state_pressed="false" android:drawable="@drawable/settings_border_roundup" />

    <!-- Pressed -->
    <item android:state_selected="true" android:state_pressed="true"
        android:drawable="@drawable/selector_pressed" > 
        </item>
    <item android:state_pressed="true" android:drawable="@drawable/list_selector_pressed" />
</selector>
Run Code Online (Sandbox Code Playgroud)

这是我的selector_pressed

<shape
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid android:color="#E6E6E6"></solid>
    <corners android:radius ="10dp" />
</shape>
Run Code Online (Sandbox Code Playgroud)

是否有一种方法可以获得相同的结果,例如使用listView中的listselector(在listview中,当我选择listitem时,只有背景颜色发生了变化,但边框保持不变).

Zso*_*agy 10

将整个事物放在另一个处理边框绘制的父布局中,如下所示:

<FrameLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="your background 9-patch or shape of the border"
    android:padding="some padding value so the border looks ok">

    < Your RelativeLayout without the border stuff >

</FrameLayout>
Run Code Online (Sandbox Code Playgroud)