自定义dialog

(代码有详细注释)记录一个自定义的带动画的底部弹框代码,其余dialog都不用愁了。。。
样图:


WeChat8b782129b1b871a2babb9047adbe053d.png

R.style.BottomDialog:


R.style.mypopwindow_anim_style


popshow_anim.xml



    

    

pophidden_anim



    
    

dialog完整代码

import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.view.Gravity;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.TextView;

import com.example.admin.listviewdemo.R;

public class CustomDialog extends Dialog {

    private TextView txt;

    private Context context;

    public CustomDialog(@NonNull Context context) {
        super(context, R.style.BottomDialog);//第二个参数是不设置的话dialog将无法占满设置的大小,有默认边距
        this.context = context;
    }

    @Override
    protected void onCreate(Bundle savedInstanceState?) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.dialog_custom); //设置dialog布局

        Window window = getWindow();
        WindowManager.LayoutParams params = window.getAttributes();
        params.width = WindowManager.LayoutParams.MATCH_PARENT;//设置布局属性占满宽度
        params.height = WindowManager.LayoutParams.WRAP_CONTENT;//设置布局属性适应高度
        params.gravity = Gravity.BOTTOM;//设置dialog位于底部
        params.windowAnimations = R.style.mypopwindow_anim_style;//设置dialog进入和出去的动画
        window.setAttributes(params);

        setCancelable(false);//设置点击dialog外部无效,不关闭dialog
        txt = findViewById(R.id.txt);
        txt.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                hide();
            }
        });

    }
}

你可能感兴趣的:(自定义dialog)