[안드로이드] Dialog style customize 하는 법
안녕하세요. 개발자 드리머즈입니다.
dialg style customize하는 법을 배우면 좋을 것 같아서 찾아봤습니다.
dialog customize를 위해서 먼저 레이아웃을 결정해야 합니다.
두 가지 방법이 있습니다.
방법1 : 기본적으로 제공받는 레이아웃을 사용하기
방법2 : 커스텀 레이아웃을 사용하기
AlertDialog에서 기본적으로 제공하는 간단한 레이아웃으로 원하는 것을 표현할 수 없는 경우라면 방법2를 사용하면 되는데, 저의 경우에는 AlertDialog에서 기본적으로 제공하는 간단한 레이아웃으로도 충분하므로 방법1을 사용하겠습니다. 그래서 레이아웃 설정을 따로 할 필요가 없습니다.
*소스 코드
public class MyCustomDialogFragment extends DialogFragment {
public static final String DIALOG_MESSAGE = "dialogMessage";
public static final String POSITIVE_BUTTON_APP_FINISH = "positiveButtonAppFinish";
String dialogMessage = "not set";
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
Bundle bundle = getArguments();
if (bundle != null) {
dialogMessage = bundle.getString(DIALOG_MESSAGE);
}
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setMessage(dialogMessage)
.setTitle("Title Test")
.setIcon(R.drawable.kakaoaccount_icon)
.setPositiveButton("Positive", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
}
})
.setNegativeButton("Negative", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
}
});
return builder.create();
}
}
*실행 화면
위와 같은 상태에서
간단하게 AlertDialog의 배경색, 타이틀 글자 색, 메시지 글자 색, 버튼 글자 색을 변경하려고 합니다.
그러려면 먼저 AlertDialog.Builder 객체를 생성할 때 아래와 같이 style을 인자로 주어야 합니다.
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), R.style.MyCustomDialogStyle);
styles.xml
<resources>
<style name="MyCustomDialogStyle" parent="@android:style/Theme.DeviceDefault.Dialog.NoActionBar.MinWidth">
<!-- Used for the background
<item name="android:background">#ffffff</item>-->
<!-- Used for the title and text
<item name="android:textColorPrimary">#00ff00</item> -->
<!-- title color + button color? -->
<item name="android:textColor">#ff0000</item>
</style>
</resources>
그런데 생각처럼 style에서.. 생각처럼 원하는 것처럼 원하는 것만 변경되지 않네요.
타이틀이랑 메시지 색이 같이 변경되거나
타이틀이나 버튼 색이 같이 변경됩니다.
자료를 좀 더 찾아봐야겠습니다..
*참고
stackoverflow 질문글 : https://stackoverflow.com/questions/35626934/change-title-color-of-alertdialog-on-below-android-5-0
stackoverflow 질문글 : https://stackoverflow.com/questions/8336206/android-how-can-i-change-the-color-of-header-in-my-custom-dialog
stackoverflow 질문글(버튼 색 변경) : https://stackoverflow.com/questions/17901072/changing-alertdialog-builder-button-color
https://stackoverflow.com/questions/35904684/style-applied-to-an-alertdialog-not-working-correctly
티스토리 블로그 참고글 : http://h2110.tistory.com/37
댓글 영역