Androidでダイアログウィンドウの枠線を追加しようとしています。ダイアログボックスに境界線を追加するには、以下の行をandroidのダイアログウィンドウに枠を追加する
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:left="5dp"
android:right="5dp"
android:bottom="5dp"
android:top="5dp">
<shape android:shape="rectangle">
<solid android:color="#ffbf80" />
<corners android:radius="30dp" />
<padding
android:left="1dp"
android:top="1dp"
android:right="1dp"
android:bottom="1dp" />
</shape>
</item>
</layer-list>
を描画可能なを使用して、ダイアログウィンドウに丸みを帯びた角を追加して、私は
<shape android:shape="rectangle">
<solid
android:color="#ffbf80" />
<stroke android:color="#ff3300" android:width="2dp"/>
<corners
android:radius="30dp" />
<padding
android:left="1dp"
android:top="1dp"
android:right="1dp"
android:bottom="1dp" />
</shape>
以下のようにストローク要素を追加することで試してみました。しかし、これは作成されますテキストビュー、アイコン、ボタンのようなダイアログ内のすべての要素の周りの境界。私はちょうど窓の輪郭の境界線をしたい。私はAlertDialog.Builderを使用してJavaコードで警告ダイアログを作成した
、
myDialogBuilder=new AlertDialog.Builder(new
ContextThemeWrapper(getActivity(),
R.style.CustomDialog))
.setTitle(title.getText().toString())
.setMessage(myText)
.setPositiveButton("Done", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which)
{
getDialog().dismiss();
}
});
myDialog=myDialogBuilder.create();
myDialog.setOnShowListener(new DialogInterface.OnShowListener() {
@Override
public void onShow(DialogInterface dialog) {
Window view=((AlertDialog)dialog).getWindow();
view.setBackgroundDrawable(new
ColorDrawable(Color.TRANSPARENT));
...
}
});
私は、ダイアログボックスのための私のstyles.xmlに以下の持っている
<style name="CustomDialog" parent="@style/ThemeOverlay.AppCompat.Dialog">
<item name="android:backgroundDimEnabled">true</item>
<item name="android:background">@drawable/dialog_bg</item>
<item name="android:textColorPrimary">@color/my_textcolor</item>
</style>
は私が理解して助けてくださいアラートダイアログの境界線が表示されるように変更する必要があります。
おかげ
ご回答ありがとうございます。私はすでに述べた3つの事柄を追加しましたが、唯一の違いは、カスタムレイアウトを使用する代わりに、警告ダイアログをコードで作成していることです。なぜそれは働いていないのですか? – Sri
"myDialogBuilder = new AlertDialog.Builder(..)"をまだ使用している場合、カスタムダイアログを作成していないため、カスタムダイアログ用に作成したクラスは使用していないため何もしません。これを "myDialog = new MyCustomDialog()"またはカスタムダイアログクラスを呼び出したものに変更します。カスタムダイアログを作成するとは、Dialog Androidクラスを拡張するJavaクラスを作成することを意味します。 –
私はapi 11以上でAlertDialog.Builderを使ってカスタムスタイルでアラートダイアログを作成できると思います。このリンクhttps:// stackoverflowを確認してください。com/questions/14770400/android-alertdialog-styling。 アラートダイアログの背景色と丸みのあるコーナーを設定できましたが、動作していないのはそれだけです。 Drawableファイルにストロークを追加すると、アラートダイアログにタイトル、ボタン、メッセージなどが丸く表示されます。アラートダイアログボックスの輪郭線は1つだけ必要です。 – Sri