如何获取活动的圆角对话框主题

时间:2012-04-09 10:42:09

标签: android

我需要创建一个看起来像带有圆角的对话框的活动。

对于这个要求,我设置了

 android:theme="@android:style/Theme.Dialog" 

现在我的活动看起来像一个对话框,但我需要将其四舍五入。

然后我创建了带属性的xml并将此drawable设置为我的活动主题,但现在我的活动看起来不像对话框。

请建议我可以做什么,以便我的活动看起来像带圆角的对话框。

2 个答案:

答案 0 :(得分:36)

你可以制作自己的圆角theme。首先,drawable背景需要Activity

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >

    <corners android:radius="15dp" />

    <solid android:color="#565656" />

    <stroke
        android:width="3dp"
        android:color="#ffffff" />

    <padding
        android:bottom="6dp"
        android:left="6dp"
        android:right="6dp"
        android:top="3dp" />

</shape>

接下来制作扩展父Theme.Dialog的自己的主题:

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <style name="ThemeWithCorners" parent="android:Theme.Dialog">
        <item name="android:windowBackground">@drawable/another_test_drawable</item>
    </style>


</resources>

这将位于styles.xml文件夹中名为res/values的文件中。在Android清单中为您想要的Activity使用此主题:

//...
<activity
            android:name=".ActivityName"
            android:label="@string/app_name"
            android:theme="@style/ThemeWithCorners" >
//...

答案 1 :(得分:0)

首先,创建一个可绘制的圆角形状,如下所示:

dialogbg.xml:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <corners android:radius="15dp" />
</shape>

然后,转到你的活动的布局xml文件,并改变它的android:backgorund属性,如此

<RelativeLayout 
    android:layout_width="..." 
    android:layout_height="..." 
    android:background="@drawable/dialogbg">
    <!--views here...-->
</RelativeLayout>