DialogFragment显示动画

关于显示DialogFragment时候,如何自定义动画?
主要是用这么一句dialog.getWindow().getAttributes().windowAnimations = R.style.dialogWindowAnim;
具体的可以看下面的代码。

public class MyDialog extends DialogFragment  {


     @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState); 
    }

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        Dialog dialog = new Dialog(getActivity(), R.style.wheel_style);
        View view = LayoutInflater.from(getActivity()).inflate(
                      R.layout.show_pick_view_frag, null);
        dialog.getWindow().getAttributes().windowAnimations = R.style.dialogAnim; 
        dialog.setContentView(view);
        return dialog; 
    }   
}

里面需要用到的dialogAnim如下

    

对应的两个动画如下

dialog_push_in.xml


<set xmlns:android="http://schemas.android.com/apk/res/android">

    <translate
        android:duration="@android:integer/config_mediumAnimTime"
        android:fromYDelta="100%p"
        android:toYDelta="0%p" />

    <alpha
        android:duration="@android:integer/config_mediumAnimTime"
        android:fromAlpha="0.0"
        android:toAlpha="1.0" />

set>

dialog_push_out.xml


<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:duration="@android:integer/config_mediumAnimTime"
        android:fromYDelta="0%p"
        android:toYDelta="100%p" />

    <alpha
        android:duration="@android:integer/config_mediumAnimTime"
        android:fromAlpha="1.0"
        android:toAlpha="0.3" />
set>

这样之后,就可以让我们的dialog从下面冒出来,取消的时候往下面跑.

你可能感兴趣的:(android)