0

在我的 T-mobile MOVE 上,对话框有黑色背景和黑色文本 - 不好。

在模拟器上,所有对话框都有白色背景和黑色文本。

如何解决这个问题?为什么会这样?我应该为对话框明确设置背景吗?

4

2 回答 2

2

正如 Royston 所说,您必须制作自定义对话框。要删除黑角,请使用以下行 super(context, android.R.style.Theme_Translucent_NoTitleBar);

而不是制作自定义样式。自定义对话框的一个简单示例如下

public class customDialog extends Dialog implements android.view.View.OnClickListener{

Context context = null;
    public customDialog(Context context, String etc ) {
        super(context, android.R.style.Theme_Translucent_NoTitleBar);
        this.context = context;
        setBasicContents();
    }

    private void setBasicContents() {
        this.setContentView(R.layout.custom_dialog);
        this.findViewById(R.id.btn_ok).setOnClickListener(this);
        this.findViewById(R.id.btn_cancel).setOnClickListener(this);
        ((RelativeLayout)this.findViewById(R.id.img_bg_tranperant)).
        setBackgroundColor(Color.argb(166, 0, 0, 0));
    }

        @Override
        public void onClick(View v) {
            switch (v.getId()) {
                case R.id.btn_ok:
                    anythingyouwant();
                    break;
                case R.id.btn_cancel:
                    this.dismiss();
                    break;

                default:
                    break;
                }
      }
}

一条线

 ((RelativeLayout)this.findViewById(R.id.parent_layout)).
            setBackgroundColor(Color.argb(166, 0, 0, 0));

很重要。它采用对话框 xml 的父布局并将其背景设置为小透明。因此,当用户看到对话框时,后屏幕会变暗。除了这个布局之外,对话框 xml 将包含两个按钮和一个 textView 来显示消息。您可以根据您的要求自定义此自定义类和 xml。

谢谢,

于 2013-03-18T09:25:10.577 回答
0

基本上,如果您Dialog在 Android 中使用默认设置,那么由于每个供应商都为其对话框设置了颜色和背景,因此它们看起来会有所不同。例如,三星对话框与默认的 Nexus 设备对话框完全不同。

对你来说最好的选择是定义你自己的颜色和主题,让对话框在所有设备上看起来都一样。否则,为供应商希望显示的新外观对话框做好准备。

于 2013-03-18T05:42:20.883 回答