14

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

对于这个要求,我设置

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

现在我的活动看起来像一个对话框,但我需要把它的角弄圆。

然后我创建了带有属性的 xml 并将这个可绘制对象设置为我的活动主题,但现在我的活动看起来不像对话框。

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

4

3 回答 3

44

你可以制作自己的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/valuesActivity在你想要的 android manifest 中使用这个主题:

//...
<activity
            android:name=".ActivityName"
            android:label="@string/app_name"
            android:theme="@style/ThemeWithCorners" >
//...
于 2012-04-09T11:53:14.020 回答
0

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

对话bg.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>
于 2012-04-09T10:50:09.880 回答
0

如果对于任何人,上述答案不起作用,请尝试这样做:

需要像上面的任何例子一样首先创建一个圆形:

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

1.将此形状设置为活动的布局。2.创建如下自定义样式:`

<style name="mycustomtheme" parent="android:Theme.Dialog">
    <item name="android:windowBackground">@android:color/transparent</item>
</style>

`

现在在您的活动中设置主题 <activity android:name=".MainActivity" android:label="@string/app_name" android:theme="@style/mycustomtheme" >

于 2021-05-23T00:53:44.123 回答