AlertDialog完全使用

来源:互联网 发布:mac 隐藏文件夹 编辑:程序博客网 时间:2024/06/02 06:20

不用自定义dialog实现圆角,设置宽高,动画,位置等功能
1圆角

//设置dialog背景android.view.Window window = dialog.getWindow();window.setBackgroundDrawableResource(R.drawable.back);

R.drawable.back文件

<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android">    <corners android:radius="9dp" />    <solid android:color="#00000000" />透明</shape>

2设置宽高

//设置宽高android.view.Window window = dialog.getWindow();WindowManager m = getWindowManager();Display d = m.getDefaultDisplay();  //为获取屏幕宽、高    android.view.WindowManager.LayoutParams p = dialog.getWindow().getAttributes();  //获取对话框当前的参数值    p.height = (int) (d.getHeight() * 0.2);   //高度设置为屏幕的0.3  p.width = (int) (d.getWidth() - 300);    //宽度设置为屏幕宽度-300   window.setAttributes(p);

完整代码(注释很详细)

 private void showDialog() {        if (dialog == null) {            AlertDialog.Builder builder = new AlertDialog.Builder(this);  //先得到构造器            //  载入布局            LayoutInflater inflater = getLayoutInflater();            View layout = inflater.inflate(R.layout.dialog_cell, null);            builder.setView(layout);            //  对布局中的控件监听            TextView tvConfirm = (TextView) layout.findViewById(R.id.tv_confirm);            tvConfirm.setOnClickListener(new View.OnClickListener() {                @Override                public void onClick(View v) {                    dialog.dismiss();                }            });            dialog = builder.create();        }        dialog.show();//先显示再设置参数        //设置dialog背景为透明,圆角        android.view.Window window = dialog.getWindow();        window.setBackgroundDrawableResource(R.drawable.back);        //设置Dialog的展示位置        window.setGravity(Gravity.BOTTOM);        //设置弹出动画        window.setWindowAnimations(R.style.dialogWindowAnim);        //设置alertDialog的宽高        WindowManager m = getWindowManager();        Display d = m.getDefaultDisplay();  //为获取屏幕宽、高            android.view.WindowManager.LayoutParams p = window.getAttributes();  //获取对话框当前的参数值            // p.height = (int) (d.getHeight() * 0.2);   //高度设置为屏幕的0.3          p.width = (int) (d.getWidth() - 300);    //宽度设置为屏幕宽度-300           p.y = 20;//设置Dialog距离底部的距离        window.setAttributes(p);  //将属性设置给窗体    }
 <style name="dialogWindowAnim" parent="android:Animation">        <item name="android:windowEnterAnimation">@anim/scale_dialog_enter</item>        <item name="android:windowExitAnimation">@anim/scale_dialog_out</item>    </style>
<?xml version="1.0" encoding="utf-8"?><translate xmlns:android="http://schemas.android.com/apk/res/android"    android:duration="200"    android:fromYDelta="100%"    android:toYDelta="0" />
<?xml version="1.0" encoding="utf-8"?><translate xmlns:android="http://schemas.android.com/apk/res/android"    android:duration="200"    android:fromYDelta="0"    android:toYDelta="100%" />
原创粉丝点击