私のT-mobileMOVEでは、ダイアログの背景が黒でテキストが黒です-良くありません。
エミュレーターでは、すべてのダイアログの背景が白でテキストが黒です。
これを修正する方法は?なぜこうなった?ダイアログの背景を明示的に設定する必要がありますか?
私のT-mobileMOVEでは、ダイアログの背景が黒でテキストが黒です-良くありません。
エミュレーターでは、すべてのダイアログの背景が白でテキストが黒です。
これを修正する方法は?なぜこうなった?ダイアログの背景を明示的に設定する必要がありますか?
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 のこのレイアウトに加えて、メッセージを表示する 2 つのボタンと 1 つの textView が含まれます。このカスタム クラスと xml を要件に合わせてカスタマイズできます。
ありがとう、
基本的Dialog
に、Androidでデフォルトを使用する場合、各ベンダーがダイアログの色と背景を設定しているため、外観が異なります。たとえば、SamsungダイアログはデフォルトのNexusデバイスダイアログとは完全に異なります。
最善の策は、ダイアログの独自の色とテーマを定義して、すべてのデバイスで均一に見えるようにすることです。それ以外の場合は、ベンダーが表示したいので、新しい外観のダイアログを用意してください。