丸みをかけたダイアログ

Andoroid 角を丸みにしたダイアログを表示しようと レイアウトを用意、
res/drawable/ の下に cornerframe.xml という名で以下のように記述

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
    <stroke android:width="4dp" android:color="#cccccc"/>
    <padding android:top="20dp" android:left="20dp"
             android:bottom="20dp" android:right="20dp"/>
    <corners android:radius="15dp"/>
    <solid android:color="#606060"/>
</shape>

これを使うダイアログのレイアウトXMLは、、

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center_vertical"
    android:orientation="horizontal"
    android:background="@drawable/cornerframe">
    <ProgressBar
        android:id="@+id/progressBar1"
        style="?android:attr/progressBarStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical" />
    <TextView
        android:id="@+id/webDialogTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:paddingLeft="5dp"
        android:text="通信中..." />
</LinearLayout>

このままだと、、以下のように角の隙間が黒いままになってしまう。

f:id:posturan:20160313231130j:plain



そこで、Dialog の 生成で、Window にバックグラウンド色を指定すると
目的どおりの丸みがかったダイアログになる。

@Override
protected Dialog onCreateDialog(int id){
   Dialog dialog = new Dialog(this);
   dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
   dialog.getWindow().setBackgroundDrawable(new ColorDrawable(0));
   return dialog;
}

f:id:posturan:20160313231122j:plain