カスタムToastの角を丸める
AndroidのToastはinflaterを使うことで好きなレイアウトを設定できますが、cssのradiusのように角を丸めたい場合
まず以下のような/res/layout/radius_shape.xmlファイルを作成し
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <corners android:radius="4dp" /> <padding android:left="2dp" android:top="2dp" android:right="2dp" android:bottom="2dp" /> <solid android:color="#CC4D404D" /> <stroke android:width="2dp" android:color="#CC8D808D" /> </shape>
次にToastのカスタムレイアウト/res/layout/custom_toast_layout.xmlを作成、そのbackground属性に設定します
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/customToastLayout" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@layout/radius_shape"> <ImageView android:id="@+id/image" android:layout_width="wrap_content" android:layout_height="fill_parent"/> <TextView android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="fill_parent"/> </LinearLayout>
infraterでカスタムレイアウトを設定すると、角を丸めたToastの完成
View toastView = getLayoutInflater().inflate( R.layout.custom_toast_layout, (ViewGroup)findViewById(R.id.customToastLayout))); Toast toast = new Toast(context); toast.setView(toastView); toast.show();