How to make a dialog slide from bottom to middle of screen in android

后端 未结 8 2480
别跟我提以往
别跟我提以往 2020-11-30 17:10

I want to show a dialog on my activity with animation. My dialog will slide from bottom of activity to middle of activity.

/****Edit****/

I\'m sorry for my q

相关标签:
8条回答
  • 2020-11-30 18:11

    In addition to arunsoorya's answer :

    Change slide_up_dialog.xml

    <?xml version="1.0" encoding="utf-8"?>
    <translate xmlns:android="http://schemas.android.com/apk/res/android"
        android:duration="@android:integer/config_longAnimTime"
        android:fromYDelta="0%p"
        android:toYDelta="100%p" />
    

    And slide_out_down.xml

    <?xml version="1.0" encoding="utf-8"?>
    <translate xmlns:android="http://schemas.android.com/apk/res/android"
        android:fromYDelta="0%p" 
        android:toYDelta="50%p"
        android:duration="@android:integer/config_longAnimTime"/>
    
    0 讨论(0)
  • 2020-11-30 18:12

    For this, you need 2 animations and put this in the res/anim folder

    1. slide_up_dialog.xml
    <?xml version="1.0" encoding="utf-8"?>
    <translate xmlns:android="http://schemas.android.com/apk/res/android"
        android:fromYDelta="50%p" android:toYDelta="0%p"
        android:duration="@android:integer/config_longAnimTime"/>
    

    2.slide_out_down.xml

    <?xml version="1.0" encoding="utf-8"?>
    <translate xmlns:android="http://schemas.android.com/apk/res/android"
        android:duration="@android:integer/config_longAnimTime"
        android:fromYDelta="0%p"
        android:toYDelta="100%p" />
    

    Now you have to create a custom style in style.xml

    <style name="DialogAnimation">
            <item name="android:windowEnterAnimation">@anim/slide_up_dialog</item>
            <item name="android:windowExitAnimation">@anim/slide_out_down</item>
    </style>
    

    Next is to extend the android Theme. Dialog theme in the same style.xml and give the reference to the custom style we created.

    <!-- Animation for dialog box -->
        <style name="DialogSlideAnim" parent="@android:style/Theme.Dialog">
            <item name="android:windowAnimationStyle">@style/DialogAnimation</item>
        </style>
    

    And finally, call this style when you create the dialog like this.

    dialog = new Dialog(new ContextThemeWrapper(this, R.style.DialogSlideAnim));
    

    yep...Now the Dialog is ready to slide.....!!

    Update:

    As @MichealP suggested, this will place the window at the bottom

    getWindow().setGravity(Gravity.BOTTOM); 
    

    and modify the style to remove tittle and background

    <item name="android:windowBackground">@null</item> 
    <item name="android:windowFrame">@null</item> 
    <item name="android:windowNoTitle">true</item>
    

    As @sikni8 suggested this will make the black border transparent

    getWindow().setBackgroundDrawableResource(android.R.color.transparent);
    
    0 讨论(0)
提交回复
热议问题