android圆角矩形,没有背景直边矩形

时间:2011-09-13 03:38:43

标签: android android-layout

我正在尝试创建一个显示为圆角矩形的对话框。我这样做是通过指定以下形状xml作为对话框layout.xml的背景

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

    <solid    android:color="#FFFFFF"/>
    <corners  android:radius="40dp"/>
    <padding  android:left="10dp"
          android:right="10dp"
          android:top="10dp"
          android:bottom="10dp"/>
</shape>

生成的对话框在黑色90度矩形内有圆角。我想知道如何摆脱剩余的九十度矩形,只显示圆角矩形。

在弯曲角落后,似乎矩形模板仍然落后:

这是我的代码生成的对话框图片的链接:http://img577.imageshack.us/img577/8292/photoon20110912at2032.jpg

4 个答案:

答案 0 :(得分:5)

将构造函数编写为:

public CustomDialog(Context context, int theme) { super(context, theme); getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT)); }

答案 1 :(得分:4)

试试这个:

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:shape="rectangle">
<solid android:color="#B7B7B7"/>
<corners android:bottomLeftRadius="8dip"
    android:bottomRightRadius="8dip"
    android:topLeftRadius="8dip"
    android:topRightRadius="8dip"/>
</shape>

答案 2 :(得分:3)

这将为您提供所需的圆角矩形,不带背景:

<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">

<gradient
    android:angle="270"/>
<stroke
    android:width="2dp"
    android:color="#FFF"/>
<corners
    android:radius="40dp"/>     

</shape>

更新供将来参考(已添加为评论)

Context mContext = getApplicationContext(); 
Dialog dialog = new Dialog(mContext,android.R.style.Theme_Translucent_NoTitleBar);
dialog.setContentView(R.layout.custom_dialog); dialog.show();

答案 3 :(得分:0)

当我遇到同样的问题时,我很震惊,解决方案也有点奇怪。创建您自己的自定义drawable,例如见下文。

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

    <solid android:color="@color/text_highlight" />

    <stroke
        android:width="5dp"
        android:color="@color/text_highlight" />

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

    <stroke
        android:width="1dp"
        android:color="@android:color/transparent" />

</shape>

将以下行添加到对话框中:

 dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);

 // This is line that does all the magic
 dialog.getWindow().setBackgroundDrawableResource(                             
 R.drawable.dialog_rounded);