Android 实现屏幕底部弹出Dialog

来源:互联网 发布:淘宝投诉盗图原始图片 编辑:程序博客网 时间:2024/04/29 10:34

Android 实现屏幕底部弹出Dialog 封装使用(本文作为开发中记录使用,请轻喷)

日常开发中经常用到Dialog实现用户交互界面每次都要重写一个很麻烦(产品经理一言不合就要求弹窗)

效果图
这里写图片描述

这个效果要的算是比较常见的了

import android.app.Dialog;import android.content.Context;import android.os.Bundle;import android.view.Gravity;import android.view.View;import android.view.Window;import android.view.WindowManager;/** * 自定义底部弹出对话框 * Created by zhaomac on 2017/9/8. */public class ButtomDialogView extends Dialog {    private boolean iscancelable;//控制点击dialog外部是否dismiss    private boolean isBackCancelable;//控制返回键是否dismiss    private View view;    private Context context;    //这里的view其实可以替换直接传layout过来的 因为各种原因没传(lan)    public ButtomDialogView(Context context, View view, boolean isCancelable,boolean isBackCancelable) {        super(context, R.style.MyDialog);        this.context = context;        this.view = view;        this.iscancelable = isCancelable;    }    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(view);//这行一定要写在前面        setCancelable(iscancelable);//点击外部不可dismiss        setCanceledOnTouchOutside(isBackCanCelable);        Window window = this.getWindow();        window.setGravity(Gravity.BOTTOM);        WindowManager.LayoutParams params = window.getAttributes();        params.width = WindowManager.LayoutParams.MATCH_PARENT;        params.height = WindowManager.LayoutParams.WRAP_CONTENT;        window.setAttributes(params);    }}    <style name="MyDialog" parent="@android:style/Theme.Holo.Dialog">        <!-- 是否有边框 -->        <item name="android:windowFrame">@null</item>        <!--是否在悬浮Activity之上  -->        <item name="android:windowIsFloating">true</item>        <!-- 标题 -->        <item name="android:windowNoTitle">true</item>        <!--阴影  -->        <item name="android:windowIsTranslucent">true</item><!--半透明-->        <!--背景透明-->        <item name="android:windowBackground">@android:color/transparent</item>        <!-- 还可以加入一些弹出和退出的动画 (lan)-->    </style>
原创粉丝点击