最近需要实现类似微信聊天界面输入文字命中关键字出现Emoji 表情雨的动画效果,自己试着实现了一下,主要就是用 ObjectAnimatior 的 平移 动画,用随机函数控制每个Emoji 的 横,纵坐标和动画持续时间,并且获取屏幕宽度,高度做边界限制。简单做个学习笔记;
首先,为了简单明了,在布局上添加一个触发表情雨的按钮,触发事件你可以改;
DisplayMetrics dm = getResources().getDisplayMetrics();
screenWidth = dm.widthPixels;
screenHeight = dm.heightPixels;
button = new Button(MainActivity.this);
button.setText("Emoji Rain");
layoutParams = new RelativeLayout.LayoutParams(dip2px(MainActivity.this, 320), dip2px(MainActivity.this, 60));
layoutParams.addRule(RelativeLayout.CENTER_HORIZONTAL, RelativeLayout.TRUE);
layoutParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, RelativeLayout.TRUE);
relativeLayout.addView(button, 0, layoutParams);