android - 我在这段代码中反复定义了动画。没有更简单的方法可以做到这一点吗?
问题描述
我在这段代码中反复定义了动画。没有更简单的方法可以做到这一点吗?代码按我想要的方式工作,但我想简化我的编码。你能帮帮我吗?我应该如何遵循一种方法。如何增加等待时间? 我做了一个我在这个标题中做不到的代码,但它写得更短了
resimyukle();
hediye=getDrawable(R.drawable.hediye);
final ImageView[] imajlar={img1,img2,img3,img4,img5,img6,img7,img8};
Animation fadein=AnimationUtils.loadAnimation(getApplicationContext(),R.anim.fadein);
imajlar[0].setBackground(hediye);
imajlar[0].startAnimation(fadein);
Animation res=AnimationUtils.loadAnimation(getApplicationContext(),R.anim.fadein);
Animation res1=AnimationUtils.loadAnimation(getApplicationContext(),R.anim.fadein);
Animation res2=AnimationUtils.loadAnimation(getApplicationContext(),R.anim.fadein);
Animation res3=AnimationUtils.loadAnimation(getApplicationContext(),R.anim.fadein);
Animation res4=AnimationUtils.loadAnimation(getApplicationContext(),R.anim.fadein);
Animation res5=AnimationUtils.loadAnimation(getApplicationContext(),R.anim.fadein);
Animation res6=AnimationUtils.loadAnimation(getApplicationContext(),R.anim.fadein);
anima(fadein,res,imajlar[1]);
anima(res,res1,imajlar[2]);
anima(res1,res2,imajlar[3]);
anima(res2,res3,imajlar[4]);
anima(res3,res4,imajlar[5]);
anima(res4,res5,imajlar[6]);
anima(res5,res6,imajlar[7]);
}
public void anima(final Animation aa, final Animation bb, final ImageView img)
{
aa.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
animation.cancel();
img.setBackground(hediye);
img.startAnimation(bb);
}
@Override
public void onAnimationRepeat(Animation animation) {
}
});
}
解决方案
hediye=getDrawable(R.drawable.hediye);
final ImageView[] imajlar={img1,img2,img3,img4,img5,img6,img7,img8};
Animation res=AnimationUtils.loadAnimation(getApplicationContext(),R.anim.fadein);
for (int i = 0; i < imajlar.size; i++) {
anima(res, imajlar[i], i);
}
你的方法:
public void anima(Animation aa, ImageView img, int id)
{
aa.setStartOffset(id * 500);
aa.setDuration(1000);
img.startAnimation(aa);
img.setBackground(hediye);
}
推荐阅读
- python - 将带有 GMT 的时间戳转换为 Pandas 中的时间戳
- android - 通过 ADB 检索 Android 呼叫日志
- gruntjs - 如何使用 Grunt 将文件复制到每个目录?
- python-3.x - 在 django 中将 html 转换为 pdf 时处理 base64 图像的对齐
- android - 如何在Android中计算两个TIMESTAMP之间的时间差
- unit-testing - 如何设置 HTTP GET 虚假响应
- php - 文件上传 enctype=multipart/form-data 在 php 中不起作用
- ssas - 使用 LinkMember 函数获取所有链接成员
- powershell - 使用参数对象调用 Powershell 函数
- uwp - 如何在uwp中写入json数据应用程序本地文件夹