无法创建圆角Dialog(Android-Eclipse)

时间:2012-03-28 10:08:52

标签: android dialog rounded-corners

我正在尝试为应用的对话框创建自定义对话框形状。我一直在寻找这个话题几个小时,但我找到的解决方案对我不起作用,这就是为什么我问你自己的问题。 我想要一个带圆角的Dialog并显示一个标题,然后是一个带有一些文本的ScrollView。唯一对我不起作用的是圆角。 在这里,我发布了我的代码:

我的AndroidManifest.xml,带有我想要的活动,带有我的圆角对话框:

<activity 
        android:name=".AboutNacimiento"
        android:label="@string/about_nac_title"
        android:theme="@style/Theme.CustomDialogTheme"
        android:screenOrientation="nosensor">
    </activity>

然后我的资源有各自的样式(res / layout / values / dialogTheme.xml)

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

<style name="Theme.CustomDialogTheme" 
    parent="@android:style/Theme.Dialog">
    <item name="android:windowTitleStyle">@style/dialog_title_style</item>
    <item name="android:background">@drawable/rounded_dialog</item>     

</style>

<style name="dialog_title_style" parent="@android:Widget.TextView">
    <item name="android:background">@color/titulo_color</item>
    <item name="android:padding">10dip</item>
    <item name="android:textSize">20sp</item>
    <item name="android:gravity">center</item>
    <item name="android:textStyle">bold</item>
    <item name="android:textColor">@color/texto_blanco</item>
</style>    

最后我想要的圆形对话框形状(res / drawable / rounded_dialog.xml):

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

android:shape="rectangle" >
<solid android:color="@color/background_color"/>
<stroke android:color="#7F7F7F" android:width="1dp" />
<corners
    android:radius="20dp"/> 
</shape>

但是我得到的唯一“圆润”的东西是TextViews中的一些边框...

http://imageshack.us/photo/my-images/515/problemab.jpg

你能帮我找到我想要的对话吗?

1 个答案:

答案 0 :(得分:8)

删除默认android框架的关键是:

MyDialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));

以下是完整示例:

Dialog MyDialog= new Dialog(MyActivity.this);
MyDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
MyDialog.setContentView(R.layout.my_custom_dialog);
MyDialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
MyDialog.show();