53.android 简单的自定义加载弹窗

//第一种 先上效果图,中间的+号小图片是一直旋转的。

53.android 简单的自定义加载弹窗_第1张图片

//第一步 首先在res-layout下建立一个自定义布局loading_dialog.xml文件。



       
        


//第二步 在res-drawable新建样式属性文件corners_5.xml。




    
    
    
    

//第三步 在styles.xml 下添加自定义样式。


//第四步 在colors.xml 定义一个空白的颜色样式。

#00000000

//第五步 在res文件夹下,新建文件夹anim, 并anim文件夹下新建弹窗动画效果loadingdialog_anim.xml。



    

//第六步 再写一个LoadingDialog类,在Activity里调用,这里面把所有功能都封装好。

public class LoadingDialog {
    public static Dialog getLoadingDialog(Context context, String msg) {

        LayoutInflater inflater = LayoutInflater.from(context);
        View v = inflater.inflate(R.layout.loading_dialog, null);// 得到加载view
        LinearLayout layout = (LinearLayout) v.findViewById(R.id.dialog_view);// 加载布局
        // main.xml中的ImageView
        ImageView spaceshipImage = (ImageView) v.findViewById(R.id.img);
        TextView tipTextView = (TextView) v.findViewById(R.id.tipTextView);// 提示文字
        // 加载动画
        Animation hyperspaceJumpAnimation = AnimationUtils.loadAnimation(context, R.anim.loadingdialog_anim);
        // 使用ImageView显示动画
        spaceshipImage.startAnimation(hyperspaceJumpAnimation);
        tipTextView.setText(msg);// 设置加载信息

        Dialog loadingDialog = new Dialog(context, R.style.loading_dialog);// 创建自定义样式dialog

        loadingDialog.setCancelable(false);// 不可以用“返回键”取消

        loadingDialog.setContentView(layout, new LinearLayout.LayoutParams(
                LinearLayout.LayoutParams.MATCH_PARENT,
                LinearLayout.LayoutParams.MATCH_PARENT));// 设置布局
        return loadingDialog;
    }
}

//第七步 在Activity里调用。

//在需要调用的地方:

Dialog dialog = LoadingDialog.getLoadingDialog(Main4Activity.this, "加载中...");

//开启

dialog.show();

//结束

dialog.dismiss();

 

//第二种 先上效果图

53.android 简单的自定义加载弹窗_第2张图片

//第一步 自定义dialog.xml布局



    
   
    
    


//第二步 在Styles里设置风格属性,自定义Dialog的样式。



//第三步 在drawable下新建两个动画文件bottom_dialog_in.xml,bottom_dialog_exit.xml。

//bottom_dialog_in.xml


//bottom_dialog_exit.xml


 

//第四步 Activity里使用,加载自定义的布局,初始化布局的控件,为两个TextView设置点击事件,获取当前dialog所在的窗体,为myDialog设置位置属性,以及宽和高,再显示对话框。

dialog = new Dialog(this, R.style.BottomDialogStyle);
                //填充对话框的布局
                 view = LayoutInflater.from(this).inflate(R.layout.dialog, null);
                //初始化控件
                TextView fromAlbum = (TextView) view.findViewById(R.id.from_album_text);
                TextView fromSystem = (TextView) view.findViewById(R.id.from_system_text);
                fromAlbum.setOnClickListener(Main4Activity.this);
                fromSystem.setOnClickListener(this);
                //将布局设置给Dialog
                dialog.setContentView(view);
                //获取当前Activity所在的窗体
                Window dialogWindow = dialog.getWindow();
                //设置Dialog从窗体底部弹出
                dialogWindow.setGravity(Gravity.BOTTOM);
                //获得窗体的属性
                WindowManager.LayoutParams lp = dialogWindow.getAttributes();
                //这个*0.95就是给这个窗体设置弹出大小,不设置就默认为宽度最大
//                lp.width = (int) (getWallpaperDesiredMinimumWidth());
                lp.width = (int) (getWallpaperDesiredMinimumWidth()*0.95);
                lp.y = 20; //设置Dialog距离底部的距离
                dialogWindow.setAttributes(lp); //将属性设置给窗体
                dialog.show();//显示对话框

//关闭对话框

dialog.dismiss();

//-----------------------------------------------------------------------完------------------------------------------------------------------------------------

你可能感兴趣的:(android效果)