我在做一个视频直播的app。当我加入动态礼物(gif)。编写代码来加入礼物和呈现特效的方法。但是导致了app的包变的非常大。这个怎么解决?跪求!!!!拿到的特效礼物有8个,每个礼物平均下来有8m左右。该如何实现包的优化。还请大神解决。以下是一个动画:/**
- @param sendGiftBean 赠送的礼物信息
- @dw 红色小轿车动画
-
@author 魏鹏
*/
protected void showRedCarAnimation(SendGiftBean sendGiftBean) {
if (!giftAnimationPlayEnd) {
return;
}giftAnimationPlayEnd = false;
//获取汽车动画布局
mGiftView = getLayoutInflater().inflate(R.layout.view_live_gift_animation_car_general, null);
AvatarView uHead = (AvatarView) mGiftView.findViewById(R.id.iv_animation_red_head);
TextView mname = (TextView) mGiftView.findViewById(R.id.tv_liwu_name);
mname.setText(sendGiftBean.getNicename());
uHead.setAvatarUrl(sendGiftBean.getAvatar());
//获取到汽车image控件
final ImageView redCar = (ImageView) mGiftView.findViewById(R.id.iv_animation_red_car);
//添加到当前页面
mLiveContent.addView(mGiftView);final int vw = redCar.getLayoutParams().width;
//动画第二次
final Runnable carRunnable = new Runnable() {
@Override
public void run() {
//小汽车切换帧动画开始继续移动向-x
redCar.setImageResource(R.drawable.car_red1);
mGiftView.animate().translationX(~vw)
.withEndAction(new Runnable() {
@Override
public void run() {
//小汽车从底部重新回来切换帧动画
redCar.setImageResource(R.drawable.car_10001);
ObjectAnimator oX = ObjectAnimator.ofFloat(mGiftView, "translationX", mScreenWidth, mScreenWidth / 2 - vw / 2);
ObjectAnimator oY = ObjectAnimator.ofFloat(mGiftView, "translationY", mScreenHeight / 2, mScreenHeight >> 2);//重新初始化帧动画参数 AnimatorSet animatorSet = new AnimatorSet(); animatorSet.playTogether(oX, oY); animatorSet.setDuration(2000); animatorSet.addListener(new Animator.AnimatorListener() { @Override public void onAnimationStart(Animator animation) {
共同学习,写下你的评论
评论加载中...
作者其他优质文章