Android - 以花哨的方式打开对话框

时间:2017-05-27 20:34:16

标签: android android-dialog android-popupwindow

我一直在通过膨胀布局来使用android对话框构建器。一切都很好,完美。但现在,我想改变打开对话框构建器的方式。我想像刷卡一样打开对话框构建器。 .i.e。从左到右或从上到下等

我知道stackoverflow不仅仅是提问,而是至少要付出一些努力。但问题是,我无法找到任何例子或线索。 需要一些建议,或参考遵循。

谢谢!

对话框开场代码:

   final Dialog dialog = new Dialog(main.this);
    dialog.setContentView(R.layout.prompt_dialoge);
    dialog.setTitle("Draw your signature below");

   Button dialogButton = (Button) dialog.findViewById(R.id.btnOk);
    // if button is clicked, close the custom dialog
    dialogButton.setOnClickListener(new View.OnClickListener()
    {
       @Override
        public void onClick(View v)
        {
        }
    });
   dialog.show();

1 个答案:

答案 0 :(得分:1)

为您的new Dialog()构造函数添加样式,如下所示。

final Dialog dialog = new Dialog(main.this, R.style.DialogStyle);
dialog.setContentView(R.layout.prompt_dialoge);
dialog.setTitle("Draw your signature below");

Button dialogButton = (Button) dialog.findViewById(R.id.btnOk);
// if button is clicked, close the custom dialog
dialogButton.setOnClickListener(new View.OnClickListener()
{
   @Override
    public void onClick(View v)
    {
    }
});
dialog.show();

将此款式添加到styles.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="DialogStyle" parent="@android:style/Theme.Dialog">
        <item name="android:windowAnimationStyle">@style/DialogAnimation</item>
    </style>

    <style name="DialogAnimation">
        <item name="android:windowEnterAnimation">@anim/slide_in_right</item>
        <item name="android:windowExitAnimation">@anim/slide_out_right</item>
    </style>
</resources>

<强> slide_in_right.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">

    <translate
        android:duration="200"
        android:fillAfter="true"
        android:fromXDelta="100%p"
        android:interpolator="@android:anim/linear_interpolator"
        android:toXDelta="00%p" />

</set>

<强> slide_out_right.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">

    <translate
        android:duration="200"
        android:fillAfter="true"
        android:fromXDelta="000%p"
        android:interpolator="@android:anim/linear_interpolator"
        android:toXDelta="100%p" />

</set>