gpt4 book ai didi

android - 动画像 "fast"或低 fps

转载 作者:行者123 更新时间:2023-11-29 18:00:34 25 4
gpt4 key购买 nike

我正在创建一个计数器,它有一个输入和输出数字的动画。我在 xml 布局中有这个动画,通常每秒运行一次。正如您在下面看到的那样,我的动画做的事情很奇怪 video , 它不能正常工作。

我的动画 xml 代码是:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<scale
android:fromXScale="1.0"
android:toXScale="2.0"
android:fromYScale="1.0"
android:toYScale="2.0"
android:pivotX="50%"
android:pivotY="50%"
android:duration="350"/>

<scale
android:fromXScale="2.0"
android:toXScale="1.0"
android:fromYScale="2.0"
android:toYScale="1.0"
android:pivotX="50%"
android:pivotY="50%"
android:duration="350"/>
</set>

我的“计时器”读取系统时间并启动动画并更改数字的代码是:

void onTime() { //this function is executed more than 1 time per second...      
long y=System.currentTimeMillis()-start; //start is initialized on the onCreate

if (isBetween(Integer.parseInt(Long.toString(y)), 1000, 1070)) {
time.setText("3");
time.setAnimation(anim);
System.out.println(Integer.parseInt(Long.toString(y)));
} if (isBetween(Integer.parseInt(Long.toString(y)), 2000, 2070)) {
time.setText("2");
time.setAnimation(anim);
System.out.println(Integer.parseInt(Long.toString(y)));
}else if (isBetween(Integer.parseInt(Long.toString(y)), 3000, 3070)) {
time.setText("1");
time.setAnimation(anim);
System.out.println(Integer.parseInt(Long.toString(y)));
}else if (isBetween(Integer.parseInt(Long.toString(y)), 4000, 4070)) {
time.setText("GOOO!");
time.setAnimation(anim);
System.out.println(Integer.parseInt(Long.toString(y)));
count.setVisibility(View.VISIBLE);
cuenta = 0;
count.setText("0");
}else if (isBetween(Integer.parseInt(Long.toString(y)), 5000, 5070)) {
time.setText("1");
time.setAnimation(anim);
System.out.println(Integer.parseInt(Long.toString(y)));
}else if (isBetween(Integer.parseInt(Long.toString(y)), 6000, 6070)) {
time.setText("2");
time.setAnimation(anim);
System.out.println(Integer.parseInt(Long.toString(y)));
}else if (isBetween(Integer.parseInt(Long.toString(y)), 7000, 7070)) {
time.setText("3");
time.setAnimation(anim);
System.out.println(Integer.parseInt(Long.toString(y)));
}else if (isBetween(Integer.parseInt(Long.toString(y)), 8000, 8070)) {
time.setText("4");
time.setAnimation(anim);
System.out.println(Integer.parseInt(Long.toString(y)));
}else if (isBetween(Integer.parseInt(Long.toString(y)), 9000, 9070)) {
time.setText("5");
time.setAnimation(anim);
System.out.println(Integer.parseInt(Long.toString(y)));
}else if (isBetween(Integer.parseInt(Long.toString(y)), 10000, 10070)) {
time.setText("Time!");
time.setAnimation(anim);
System.out.println(Integer.parseInt(Long.toString(y)));
//count.setVisibility(View.INVISIBLE);
int finalcount = cuenta;
System.out.println(finalcount);
}
}

关于我可以更改哪些内容以正确查看动画有什么想法吗?我认为时间很好,最终,动画持续时间为 700 毫秒,并且每 1000 毫秒开始一次。

最佳答案

看起来您正在尝试让动画将您的数字缩放到两倍大小,然后再将其缩小到原始大小。但是,您所拥有的是同时发生的两个动画。一个动画执行收缩,另一个动画执行扩展。这引起了冲突。

你需要做的是有两个动画文件。启动一个动画,并在第一个动画完成后在动画监听器中启动第二个动画。

关于android - 动画像 "fast"或低 fps,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16386728/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com