我在xml里放了一个imageview和一个button,在主程序中的代码为:点击按钮,则通过一个animation动画来移动imageview到一个指定位置(animation动画是申明在xml里的那种),但是动画已结束imageview又会跳回原来的位置
关键点:
backInAnimation.setFillAfter(true);
此方法是保留移动后的位置
public class MainActivity extends Activity{
private Button button;
private Animation backInAnimation;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
backInAnimation = AnimationUtils.loadAnimation(this,
R.anim.slide_out_left);
button = (Button)findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
button.setAnimation(backInAnimation);
backInAnimation.setFillAfter(true);
}
});
}
}
<?xml version="1.0" encoding="utf-8"?>
<set
xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_decelerate_interpolator">
<translate
android:fromYDelta="0"
android:toYDelta="10%p"
android:duration="300"/>
</set>
关键点:
backInAnimation.setFillAfter(true);
此方法是保留移动后的位置
public class MainActivity extends Activity{
private Button button;
private Animation backInAnimation;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
backInAnimation = AnimationUtils.loadAnimation(this,
R.anim.slide_out_left);
button = (Button)findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
button.setAnimation(backInAnimation);
backInAnimation.setFillAfter(true);
}
});
}
}
<?xml version="1.0" encoding="utf-8"?>
<set
xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_decelerate_interpolator">
<translate
android:fromYDelta="0"
android:toYDelta="10%p"
android:duration="300"/>
</set>