Animation
を0.5秒間一時停止する方法はありますか?
TranslateAnimation
APIを使用して無限のアニメーションを作成しようとしています。したがって、私はRepeatCount
をInfinite
として使用します。また、アニメーションの開始を遅らせたい場合をカバーするsetStartOffset(...)
メソッドがあることに気づきました。ただし、各「再起動」の前に遅延を発生させる方法が見つかりません。アニメーションは無限に発生するので、アニメーションが再開するたびに遅延を入れる必要があります。
何か案は?
ありがとう!
ここに例があります:
まず、アニメーション化する画像を含むレイアウト(main.xml):
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:orientation="vertical" >
<ImageView
Android:id="@+id/imageView1"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:src="@drawable/ic_launcher" />
</LinearLayout>
次はアニメーションです。 res/animに配置され、anim_img.xmlと呼ばれます。このファイルには、Android:startOffset = "500"(ミリ秒単位)の翻訳アニメーションが含まれています。これにより、アニメーションが開始するたびに使用されるオフセットが設定されます。
<?xml version="1.0" encoding="utf-8"?>
<set>
<translate
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:duration="1000"
Android:fromXDelta="0%"
Android:fromYDelta="0%"
Android:toXDelta="0%"
Android:toYDelta="100%"
Android:zAdjustment="top"
Android:repeatCount="infinite"
Android:startOffset="500"/>
</set>
そして最後になりましたが、アクティビティです。アニメーションを開始します:
public class StackOverflowActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ImageView iv_icon = (ImageView) findViewById(R.id.imageView1);
Animation a = AnimationUtils.loadAnimation(this, R.anim.anim_img);
a.setFillAfter(true);
a.reset();
iv_icon.startAnimation(a);
}
}
乾杯、ポール
各再起動の間にxミリ秒の一時停止を実現するには:
myAnimation.setAnimationListener(new AnimationListener(){
@Override
public void onAnimationStart(Animation arg0) {
}
@Override
public void onAnimationEnd(Animation animation) {
}
@Override
public void onAnimationRepeat(Animation animation) {
myAnimation.setStartOffset(x);
}
});
myanimation.setStartDelay(int);