java - 控制动画在 android studio 中的持续时间
问题描述
我想控制动画在我的应用程序中运行的秒数,但我发现只有两个选项 - 无限运行或一次性运行,我希望动画运行不止一次但结束 - 即:动画说话,我希望在某个时候,嘴巴会停止移动。
这是我的动画列表 xml:
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/combi_animation" android:oneshot="false">
<item android:drawable="@drawable/combi_logo" android:duration="600" />
<item android:drawable="@drawable/combi_mouth_closed" android:duration="600" />
</animation-list>
和我的动画代码:
protected void onStart() {
super.onStart();
AnimationDrawable rocketAnimation;
ImageView rocketImage = (ImageView) findViewById(R.id.combi_icon);
rocketImage.setBackgroundResource(R.drawable.combi_animation);
rocketAnimation = (AnimationDrawable) rocketImage.getBackground();
rocketAnimation.start();
}
我想也许会有一个听众,在我决定的一段时间后停止动画。我的意思是,10 秒后动画会停止。但我找不到合适的方法来做到这一点。如何做呢?
解决方案
你可以这样做 :
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
rocketAnimation.stop();
}
},10*1000);
推荐阅读
- c# - MVC WebAPI 返回多个图像
- javascript - 如何遍历div中的所有textarea元素
- groovy - 在 NiFi 中生成 UUID5
- java - 旧版本的 Spring Boot 无法在 Java 11 上启动
- android - 使用 Azure AD 对内部单租户移动应用进行身份验证的正确 OAuth 流
- reactjs - 如何制作一个交换位置而不是在react-sortable-hoc中重新排序的可排序组件
- python - 避免打印指数值
- c# - Can't use constants to define Dictionary keys?
- android - java.lang.OutOfMemoryError 在 viewFlipper 中显示图像列表时
- c - 交易前后的sqlite差异