我正在尝试创建一个显示为圆角矩形的对话框。我这样做是通过指定以下形状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
答案 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)
<?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);