AlertDialog改变字体外观(大小,颜色,对齐)

时间:2012-03-21 10:22:57

标签: java android

我正在尝试在游戏中更改AlertDialog的属性,目前我正在用这种方式构建它:

  

private static final int DIALOG_INFO = 1;

private Dialog dialog;  

@Override  
protected Dialog onCreateDialog(int id)  
{  
    AlertDialog.Builder builder = new AlertDialog.Builder(this);  

    switch (id)   
    {       
        case DIALOG_INFO:  

            builder.setTitle("Game Information - Diego 1.0.1");  
            builder.setIcon(R.drawable.icon);  
            builder.setMessage("Test there \n\n");  
            builder.setCancelable(true);  

            dialog = builder.create();  
            dialog.requestWindowFeature(Window.FEATURE_LEFT_ICON);                
            break;  
    }   
    return dialog;  
}

如果玩家点击了某个按钮,我就会用这种方式显示这个对话框:

showDialog(DIALOG_INFO); 

一切正常,但我决定用这种方式改变这个对话框中使用的字体外观:

  

TextView textView =((TextView)   dialog.findViewById(android.R.id.message));
          textView.setTextColor(Color.LTGRAY);
          textView.setTextSize(13);
          textView.setGravity(Gravity.CENTER);

但是代码只能工作,如果我把这段代码放在showDialog(DIALOG_INFO)之后;这意味着我每次显示对话框时都必须创建新对象(TextView textView = ...),我的问题是,创建对话框时我不能只创建一次吗?

提前致谢。

1 个答案:

答案 0 :(得分:1)

您可以为AlertDialog设置自己的contentView:

.....
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View rootView = (ViewGroup) inflater.inflate(R.layout.YOUR_DIALOG_LAYOUT, null);
builder.setView(rootView);
.....

以xml标记对话框布局。