通常のダイアログでは丸まっていないダイアログの角をiPhone風に丸めてみました。
コードは以下の通りです。
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > <corners android:bottomLeftRadius="10dp" android:bottomRightRadius="10dp" /> <stroke android:width="1dp" android:color="#ff7f7f7f" /> <solid android:color="#000000" /> </shape>
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > <stroke android:width="1dp" android:color="#ff7f7f7f" /> <solid android:color="#ff000000" /> </shape>
<?xml version="1.0" encoding="utf-8"?> <inset xmlns:android="http://schemas.android.com/apk/res/android" android:insetBottom="-1dp" > <shape android:shape="rectangle"> <corners android:topLeftRadius="10dp" android:topRightRadius="10dp" /> <stroke android:width="1dp" android:color="#ff7f7f7f" /> <solid android:color="#000000" /> </shape> </inset>
<resources> <style name="AppTheme" parent="android:Theme.Light" /> <style name="RoundedDialog"> <item name="android:fullDark">@drawable/rounded_dialog_body</item> <item name="android:topDark">@drawable/rounded_dialog_header</item> <item name="android:centerDark">@drawable/rounded_dialog_body</item> <item name="android:bottomDark">@drawable/rounded_dialog_footer</item> <item name="android:fullBright">@drawable/rounded_dialog_body</item> <item name="android:centerBright">@drawable/rounded_dialog_body</item> <item name="android:topBright">@drawable/rounded_dialog_header</item> <item name="android:bottomBright">@drawable/rounded_dialog_footer</item> <item name="android:bottomMedium">@drawable/rounded_dialog_footer</item> <item name="android:centerMedium">@drawable/rounded_dialog_body</item> </style> </resources>
<?xml version="1.0" encoding="utf-8"?> <resources> <style name="MyTheme" parent="@android:style/Theme"> <item name="android:alertDialogStyle">@style/RoundedDialog</item> </style> </resources>
public class MainActivity extends Activity { private static final int DIALOG_ALERT = 1; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); findViewById(R.id.text_view).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { showDialog(DIALOG_ALERT); } }); } @Override protected Dialog onCreateDialog(int id) { if(id == DIALOG_ALERT) { return new AlertDialog .Builder(new ContextThemeWrapper(this, R.style.MyTheme)) .setTitle("AlertDialog") .setMessage("Hello World!") .setIcon(android.R.drawable.ic_dialog_alert) .setCancelable(false) .setPositiveButton("OK", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }) .setNegativeButton("NG", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }) .create(); } return null; } }
0 件のコメント:
コメントを投稿