I am trying to style my AlertDialog and I have been able to change most of it through styles and xml declarations... but there are still a few issues:
- How do I change the area around the title bar from black to my custom color?
- How do I change the outer background to transparent (the outside part that is blue the the shadow drops upon)
- How do I change the buttons so they do not overlap the black border around the alert message?
here is the function I have in my RootActivity (my activities extend this one)
public static void showNoConnectionDialog(Context ctx1) {
final Context ctx = ctx1;
LayoutInflater factory = LayoutInflater.from(ctx);
AlertDialog.Builder builder = new AlertDialog.Builder(new ContextThemeWrapper(ctx, R.style.SetdartDialog));
builder.setView(factory.inflate(R.layout.alert_dialog, null))
.setIcon(R.drawable.icon)
.setCancelable(true)
.setMessage(R.string.check_wireless_settings)
.setTitle(R.string.no_connection)
.setPositiveButton(R.string.myes, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
ctx.startActivity(new Intent(Settings.ACTION_WIRELESS_SETTINGS));
}
})
.setNegativeButton(R.string.mno, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
return;
}
})
.setOnCancelListener(new DialogInterface.OnCancelListener() {
public void onCancel(DialogInterface dialog) {
return;
}
})
.show();
}
here a snippet from styles.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Theme.WhiteBackground" parent="android:Theme">
<item name="android:windowBackground">@null</item>
<item name="android:background">@android:color/white</item>
<!-- Dialog attributes
<item name="alertDialogStyle">@style/AlertDialog</item> -->
</style>
<style name="SetdartDialog">
<item name="android:background">@color/sd_blue</item> <!-- MUST HAVE with white bg-->
<!--<item name="android:windowBackground">@color/sd_blue</item> -->
<!--<item name="android:windowBackground">@color/transparent</item> needed with white bg ? -->
<item name="android:windowFrame">@color/transparent</item><!-- not sure what this changes-->
<item name="android:textColor">@android:color/black</item>
<item name="android:windowNoTitle">true</item>
<item name="android:textSize">10sp</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowContentOverlay">@color/transparent</item>
<item name="android:windowTitleStyle">@style/setwindowTitleStyle</item>
<item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
<item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item>
<item name="android:backgroundDimEnabled">true</item>
<item name="android:gravity">center_vertical|center_horizontal</item>
<!--<item name="android:colorBackgroundCacheHint">@android:color/white</item>-->
</style>
<style name="setwindowTitleStyle">
<item name="android:textColor">@android:color/white</item>
<item name="android:background">@color/sd_blue</item>
</style>
</resources>
Also R.layout.alert_dialog
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/screen"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical"
>
<LinearLayout
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical">
</LinearLayout>
</ScrollView>