9.1.7 setFillBefore方法:设置起始填充
【功能说明】该方法用于设置一个动画效果执行完毕后,View对象返回到起始的位置。该方法的效果是系统默认的效果。该方法的执行,需要首先通过setFillEnabled方法使能填充效果,否则设置无效。
【基本语法】public void setFillBefore (boolean fillBefore)
其中,参数fillBefore为是否执行起始填充效果,true表示使能该效果,false表示禁用该效果。
【实例演示】下面通过代码来演示如何让View对象在动画执行完毕后回归到起始位置。public class firstActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) { //重载onCreate方法
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final ImageViewimage=(ImageView)findViewById(R.id.imageView1); //ImageView对象
Buttonbtn1=(Button)findViewById(R.id.button1); //按钮对象
Buttonbtn2=(Button)findViewById(R.id.button2);
final AnimationtranslateAnimation=newTranslateAnimation(0,200,0,200); //移动动画效果
btn1.setOnClickListener(new View.OnClickListener() { //设置监听器
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
translateAnimation.setDuration(3000); //设置动画持续时间
translateAnimation.setFillBefore(true); //回归起始位置
translateAnimation.setFillEnabled(true); //使能填充效果
image.setAnimation(translateAnimation); //设置动画效果
translateAnimation.startNow(); //启动动画
}
});
btn2.setOnClickListener(new View.OnClickListener() { //设置监听器
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
translateAnimation.cancel(); //取消动画执行
}
});
}
}在这段代码中,首先初始化了一个移动的动画效果translateAnimation。然后,在按钮监听器中,通过setDuration方法设置动画持续时间,通过setFillBefore方法使对象回到起始点,并使用setFillEnabled使能填充效果,***使用startNow方法启动动画效果。读者执行这段代码,当点击"执行动画"按钮时,图片开始移动,当动画结束之后,图片将自动跳回到起始位置,如图9.3所示。
【责任编辑:book TEL:(010)68476606】
点赞 0