Android - 以奇特的方式打开对话生成器

Android - Open dialogue builder in fancy way

我一直在使用 android 对话框生成器,方法是在其中扩充布局。一切都运行良好和完美。但是现在,我想改变对话框生成器的打开方式。我想像刷卡一样打开对话框生成器。 。IE。从左到右或从上到下等

我知道 Whosebug 不只是问问题,但至少表现出一些努力。但问题是,我找不到任何例子或线索。 需要一些建议或参考。

谢谢!

对话框打开代码:

   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();

向您的 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>