我想提出两个与他们翻译在android系统有问题的动画和:的Android动画定位问题
- 我试图显示图像从一个侧面进入和退出等,并重复几分钟。我可以看到一个移动的,但每次动画开始 - 我看到一个毫秒的图像闪烁。
这是我的布局XML:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:background="@drawable/bg"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ImageView android:id="@+id/anim_image" android:src="@drawable/movimage"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:visibility="invisible" android:layout_marginTop="30dp"
/>
</FrameLayout>
这是我的动画XML:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<rotate
android:fromDegrees="40" android:toDegrees="-40" android:toYScale="0.0"
android:pivotX="40%" android:pivotY="30%" android:duration="4000" />
<set>
<translate
android:fromXDelta="200%p" android:toXDelta="-150%p" android:fromYDelta="20%"
android:toYDelta="10%" android:duration="4000" android:zAdjustment="bottom" />
</set>
</set>
在我的Java类,我已经创建了每onTick调用countdowntimer: 图像.startAnimation(阿尼姆);我试着听动画: anim.setAnimationListener(this);
并添加到onAnimationEnd: image.setVisibility(View.GONE);
但它没有帮助我。 有谁知道我能做些什么来解决它?
-
- 我试图表现出“流星”的形象 - 我创建了一个小的PNG文件(* 30像素30像素)和IM试图将它定位在屏幕的一个边缘让它移动到另一个并消失。但是我在动画XML中编写的每个代码都没有这样做! 任何人都可以帮我正确写出动画吗?
我写道:翻译 机器人:fromXDelta = “100%p” 的机器人:toXDelta = “ - 100%P” 机器人:fromYDelta = “0%P” 机器人:toYDelta =“100%P “机器人:时间=” 500"
,并没有工作..
编辑:我已经找到了解决办法:
我发现什么是错误的。我用CountDownTimer编写了一个代码来重复使用,而不是使用动画的重复选项。我已经将我的XML更改为:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" android:startOffset="1000"
>
<rotate
android:repeatCount="infinite" android:repeatMode="restart" android:fillAfter="false"
android:fromDegrees="40" android:toDegrees="-40" android:toYScale="0.0"
android:pivotX="40%" android:pivotY="30%" android:duration="4000" />
<set>
<translate
android:repeatCount="infinite" android:repeatMode="restart" android:fillAfter="false"
android:fromXDelta="100%p" android:toXDelta="-100%p" android:fromYDelta="20%"
android:toYDelta="10%" android:duration="4000" android:zAdjustment="bottom" />
</set>
</set>
现在它的工作方式没有在屏幕上闪烁。 同样的流星,我已经改变了XML这样:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:repeatCount="infinite" android:repeatMode="restart" android:fillAfter="false"
android:fromXDelta="100%p" android:toXDelta="-100%p" android:fromYDelta="0%p"
android:toYDelta="100%p" android:duration="2500" android:zAdjustment="bottom" />
<set>
<alpha
android:repeatCount="infinite" android:repeatMode="restart" android:fillAfter="false"
android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="2500" />
</set>
</set>
,现在,它完美的作品!
好的,我找到了一个解决方案。我试图写我自己的循环显示,而不是使用android的代码。我删除了计时器,并添加到动画以下代码:android:repeatCount =“infinite”android:repeatMode =“restart”android:fillAfter =“false”它的效果很好。 – Ofershap
啊这很好。重复动画并让它重新开始。 – Varun
我发现另一个问题 - onAnimationRepeat方法永远不会被调用。我认为它是一个android平台的bug。 – Ofershap