1. 自定义Dialog类

package com.epro.test.widget;import android.app.Dialog;import android.content.Context;import android.view.Gravity;import android.view.View;import android.view.Window;import android.view.WindowManager;import androidx.annotation.NonNull;import androidx.annotation.Nullable;/** * Created on 2019/11/25 15:34 * * @author Gong Youqiang */public class CustomDialog extends Dialog {    private Window mWindow;    public CustomDialog(@NonNull Context context) {        super(context);    }    public CustomDialog(@NonNull Context context, int themeResId) {        super(context, themeResId);    }    protected CustomDialog(@NonNull Context context, boolean cancelable, @Nullable OnCancelListener cancelListener) {        super(context, cancelable, cancelListener);    }    public void setView(View view) {        setContentView(view);    }    public void setView(int ID) {        setContentView(ID);    }    public void setProperty(int x,int y,int w,int h) {        mWindow = getWindow();        WindowManager.LayoutParams params = mWindow.getAttributes();        params.x = x;  //设置对话框的位置,0为中间        params.y = y;        params.width = w;        params.height = h;        params.alpha = 1.0f; //设置对话框的透明度,1f不透明        params.gravity = Gravity.CENTER; //设置显示在中间        mWindow.setAttributes(params);    }}

2. 给 Dialog 设置 Style,style.xml 添加

3. dialog 白色圆角背景。

<?xml version="1.0" encoding="utf-8"?>            

4. dialog 的使用

import android.os.Bundle;import android.view.View;import androidx.appcompat.app.AppCompatActivity;import com.epro.test.widget.CustomDialog;import butterknife.ButterKnife;import butterknife.OnClick;public class MainActivity extends AppCompatActivity {    private static final String TAG = "MainActivity";    private CustomDialog mDialog;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        ButterKnife.bind(this);    }    @OnClick(R.id.button)    public void onViewClicked() {        showDialog();    }    private void showDialog() {        mDialog = new CustomDialog(this,R.style.customDialog);        View view = View.inflate(this, R.layout.dialog_submit,null);        mDialog.setView(view);        mDialog.setProperty(0,0,800,600);        mDialog.setCanceledOnTouchOutside(true);        mDialog.show();    }    @Override    protected void onDestroy() {        super.onDestroy();    }}

更多相关文章

  1. Renderer (专门用于渲染3D 的接口 Renderer )()
  2. 图表引擎AChartEngine 一
  3. android studio listview控件基础
  4. Android(安卓)AlertDialog 绝对位置计算
  5. gradle.properties使用
  6. 两种方法实现卫星式菜单
  7. Android判断网络是否可用并且开启网络
  8. Universal Image Loader for Android(安卓)说明文档
  9. 安卓编译环境设置

随机推荐

  1. Android 推荐 开源项目
  2. Android对话框 (AlertDialog & ProgressD
  3. Android(安卓)gradle配置
  4. Android直播开发之旅(9):OkCamera,Android
  5. Android 网络框架 Retrofit 源码解析
  6. 2019最新《Android开发全套学习教程》
  7. android重新签名APK文件
  8. 论Android Binder驱动在Framework中的重
  9. 关于Android(安卓)O 通知渠道总结
  10. android 查询电话号码,对中文进行排序[a-z