Android прямоугольник с закругленными углами без фона прямоугольник - PullRequest
2 голосов
/ 13 сентября 2011

Я пытаюсь сделать диалог, который выглядит как прямоугольник со скругленными углами.Я делаю это, определяя следующую форму 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 ]

5 голосов
/ 05 марта 2012

Напишите ваш конструктор как:

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

4 голосов
/ 13 сентября 2011

Попробуйте это:

<?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>
3 голосов
/ 13 сентября 2011

Это даст вам требуемый скругленный прямоугольник без фона:

<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();
0 голосов
/ 23 декабря 2014

Я был шокирован, когда столкнулся с той же проблемой, решение тоже немного странное.Создайте свой собственный чертеж, например, см. Ниже.

<?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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...