Intereting Posts
Eclipse – создание новой активности Получить значение href из тега привязки в Android WebView при нажатии ссылки Запустить приложение Google Maps для проезда в андроид В чем разница между фигурными фигурными скобками и нормальными скобками в RxJava с Kotlin Android: тестирование устройств Android с помощью Robolectric и Mockito Recyclerview внутри прокрутки вложенной прокрутки, но не ускоряет прокрутку, как обычно Recyclerview или Nested Scrollview Получить путь к базе данных Как запустить приложение meteor на устройстве Android? Загрузить значение из dimens.xml и сделать его отрицательным Лучший способ включить код отладки? Как создать выпадающее меню, подобное этому в приложении Evernote? Supress Android incomming call Activity from apearing Как улучшить внешний вид приложения для Android? Изменить значки отмеченных и непроверенных для флажка для Android Android: layout_weight = "33" как ушел -> видимый видимый-> пошел эффект?

Как создать настраиваемый диалог с закругленными углами в android

То, что я пытаюсь сделать: я пытаюсь создать собственный диалог. С закругленными углами

Что такое happing: я могу создать настраиваемый диалог, но у него есть закругленные углы. Я попытался добавить селектор, но все же я не мог


Код Java:

private void launchDismissDlg() { dialog = new Dialog(getActivity(), android.R.style.Theme_Dialog); dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); dialog.setContentView(R.layout.dlg_dismiss); dialog.setCanceledOnTouchOutside(true); Button btnReopenId = (Button) dialog.findViewById(R.id.btnReopenId); Button btnCancelId = (Button) dialog.findViewById(R.id.btnCancelId); btnReopenId.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { } }); btnCancelId.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { } }); dialog.setCanceledOnTouchOutside(false); dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); dialog.getWindow().setLayout(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT); dialog.show(); } 

Код xml:

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/white" android:orientation="vertical" > <TableLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <TableRow android:id="@+id/tableRow1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="20dp" android:gravity="center" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:text="&quot;I WOULD LIKE TO DISMISS THE VENDOR&quot;" android:textColor="@color/col_dlg_blue_light" android:textSize="14sp" android:textStyle="bold" /> </TableRow> <TableRow android:id="@+id/tableRow2" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="5dp" android:gravity="center" > <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:text="BECAUSE" android:textColor="@android:color/black" android:textStyle="bold" /> </TableRow> <TableRow android:id="@+id/tableRow4" android:layout_width="match_parent" android:layout_height="wrap_content" > <Button android:id="@+id/btnReopenId" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:background="@color/col_dlg_green_light" android:text="REOPEN" android:padding="5dp" android:textSize="14sp" android:textColor="@android:color/white" android:textStyle="bold" /> <Button android:id="@+id/btnCancelId" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:background="@color/col_dlg_pink_light" android:text="CANCEL" android:padding="5dp" android:textSize="14sp" android:textColor="@android:color/white" android:textStyle="bold" /> </TableRow> </TableLayout> </LinearLayout> 

Solutions Collecting From Web of "Как создать настраиваемый диалог с закругленными углами в android"

Создайте xml в drawable, скажем, dialog_bg.xml

 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="@color/white"/> <corners android:radius="30dp" /> <padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" /> </shape> 

Установите его в качестве фона в вашем макете xml

 android:background="@drawable/dialog_bg" 

Установите фон вашего диалога на прозрачный

 dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); 

Вам необходимо сделать следующее:

  • Создайте фон с закругленными углами для фона диалога:

     <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > <solid android:color="#fff" /> <corners android:bottomLeftRadius="8dp" android:bottomRightRadius="8dp" android:topLeftRadius="8dp" android:topRightRadius="8dp" /> </shape> 
  • Теперь в XML-файле Dialog в корневом макете используйте этот фон с требуемым запасом:

     android:layout_marginLeft="20dip" android:layout_marginRight="20dip" android:background="@drawable/dialog_background" 
  • Наконец, в java-части вам нужно это сделать:

     dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); dialog.setContentView(layoutResId); View v = getWindow().getDecorView(); v.setBackgroundResource(android.R.color.transparent); 

Это отлично работает для меня.

Вы можете использовать форму для фона как-

 <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <solid android:color="@android:color/transparent"/> <corners android:radius="10dp" /> <padding android:left="10dp" android:right="10dp"/> </shape> 

Посмотрите на это для деталей.

dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));

Это работает для меня