質問: height; } @override public boolean willchangebounds() { return true; } }; しかし、この解決策では、アニメーションが開始されたときに瞬きすることがあります。私はそれがアニメーションが適用される前にフルサイズを表示するv1によって引き起こされると思います。javascriptでは、これはjqueryの1行です。アンドロイドでこれを行うための任意の簡単な方法は?
回答: これが私の解決策でした。私のimageviewは100%から200%に成長し、res/anim/フォルダー内の2つのアニメーションファイルを使用して元のサイズに戻りました anim_grow.xml <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator"> <scale android:fromxscale="1.0" android:toxscale="2.0" android:fromyscale="1.0" android:toyscale="2.0" android:duration="3000" android:pivotx="50%" android:pivoty="50%" android:startoffset="2000" /> </set> anim_shrink.xml <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator"> <scale android:fromxscale="2.0" android:toxscale="1.0" android:fromyscale="2.0" android:toyscale="1.0" android:duration="3000" android:pivotx="50%" android:pivoty="50%" android:startoffset="2000" /> </set> 私のメソッドsetanimationgrowshrink()にimageviewを送ってくださいimageview img1 = (imageview)findviewbyid(r.id.image1); setanimationgrowshrink(img1); setanimationgrowshrink()メソッド:private void setanimationgrowshrink(final imageview imgv){ final animation animationenlarge = animationutils.loadanimation(getapplicationcontext(), r.anim.anim_grow); final animation animationshrink = animationutils.loadanimation(getapplicationcontext(), r.anim.anim_shrink); imgv.startanimation(animationenlarge); animationenlarge.setanimationlistener(new animationlistener() { @override public void onanimationstart(animation animation) {} @override public void onanimationrepeat(animation animation) {} @override public void onanimationend(animation animation) { imgv.startanimation(animationshrink); } }); animationshrink.setanimationlistener(new animationlistener() { @override public void onanimationstart(animation animation) {} @override public void onanimationrepeat(animation animation) {} @override public void onanimationend(animation animation) { imgv.startanimation(animationenlarge); } }); }