廢話不說,上代碼:
1、要關閉的Activity代碼:
[java]
<span style="font-size:18px;">public class TVOffDemo extends Activity {
/** Called when the activity is first created. */
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button b = (Button) findViewById(R.id.Button01);
b.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
View img = findViewById(R.id.layout);
img.startAnimation(new TVOffAnimation());
}
});
}
}</span>
[java]
<span style="font-size:18px;">2、動畫實現類TVOffAnimation </span>
[java] view plaincopyprint?
<span style="font-size:18px;">public class TVOffAnimation extends Animation {
private int halfWidth;
private int halfHeight;
public void initialize(int width, int height, int parentWidth, int parentHeight) {
super.initialize(width, height, parentWidth, parentHeight);
setDuration(500);
setFillAfter(true);
// 保存View的中心點
halfWidth = width / 2;
halfHeight = height / 2;
setInterpolator(new AccelerateDecelerateInterpolator());
}
protected void applyTransformation(float interpolatedTime, Transformation t) {
final Matrix matrix = t.getMatrix();
if (interpolatedTime < 0.8) {
matrix.preScale(1 + 0.625f * interpolatedTime, 1 - interpolatedTime / 0.8f + 0.01f,
halfWidth, halfHeight);
} else {
matrix.preScale(7.5f * (1 - interpolatedTime), 0.01f, halfWidth, halfHeight);
}
}
}</span>