Android仿微信红包动画( 二 )


②在系统style文件中新增一个Diaog
@drawable/red_bg@nulltruetruefalse
③在中调用自定义的Diaog类并实例化,并且设置弹出的红包占屏幕的比例,不然弹出的红包会占满整个屏幕,红色代码为设置大小代码 。
red1.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {LuckeyDialog.Builder builder = new LuckeyDialog.Builder(mContext,R.style.Dialog);//调用style中的Diaogbuilder.setName("系统");builder.setOpenButton("", new DialogInterface.OnClickListener() {public void onClick(DialogInterface dialog, int which) {Intent intent = new Intent(mContext,Open.class);startActivity(intent);dialog.dismiss();}});builder.setCloseButton("", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int i) {dialog.dismiss();}});Dialog dialog = builder.create();Window dialogWindow = dialog.getWindow();WindowManager m = getWindowManager();Display d = m.getDefaultDisplay(); // 获取屏幕宽、高用WindowManager.LayoutParams p = dialogWindow.getAttributes(); // 获取对话框当前的参数值p.height = (int) (d.getHeight() * 0.7); // 高度设置为屏幕的0.6p.width = (int) (d.getWidth() * 0.75); // 宽度设置为屏幕的0.65dialogWindow.setAttributes(p);dialog.show();}});
4,完成点击后的两种结果,即抢到和未抢到的两种结果,通过跳转领取成功类或者跳出失败弹窗的简单逻辑即可 。
①抢到的效果图,这里界面比较简单就不贴代码了 。

Android仿微信红包动画

文章插图
②失败弹窗的效果图,这里的自定义弹窗代码与红包弹窗的代码基本相似,区别就在于少了个拆红包按钮而已,布局也相对简单,就不贴出来了,主要在这里面需要使用比例来规划几个部件的位置(参考上面的红包代码),否则无法适配多种屏幕,会出现压缩拉伸变形的情况 。
Android仿微信红包动画

文章插图
【Android仿微信红包动画】到这里粗略的红包动画效果就基本完成了!当然实际应用中需要用到网络请求之类的,就再按照业务要求加入 。