溫馨提示×

Android動(dòng)畫之ScaleAnimation使用

小億
121
2023-12-20 15:42:38
欄目: 編程語言

ScaleAnimation是Android中用于控制View的縮放動(dòng)畫的類。通過ScaleAnimation,可以實(shí)現(xiàn)View的放大、縮小等效果。

首先,需要?jiǎng)?chuàng)建一個(gè)ScaleAnimation對象,指定動(dòng)畫的起始縮放比例、結(jié)束縮放比例、動(dòng)畫的參考點(diǎn)以及動(dòng)畫的持續(xù)時(shí)間等參數(shù)。例如:

ScaleAnimation scaleAnimation = new ScaleAnimation(
    1.0f, 2.0f, //起始縮放比例為1倍,結(jié)束縮放比例為2倍
    1.0f, 2.0f, //參考點(diǎn)為View的中心點(diǎn)
    Animation.RELATIVE_TO_SELF, 0.5f,
    Animation.RELATIVE_TO_SELF, 0.5f
);
scaleAnimation.setDuration(1000); //動(dòng)畫持續(xù)時(shí)間為1秒

接下來,將創(chuàng)建好的ScaleAnimation對象應(yīng)用到目標(biāo)View上??梢酝ㄟ^View的startAnimation()方法來啟動(dòng)動(dòng)畫。例如:

view.startAnimation(scaleAnimation);

注意,startAnimation()方法只會啟動(dòng)動(dòng)畫效果,而不會改變View的真實(shí)大小。如果需要改變View的大小,可以在動(dòng)畫結(jié)束后,使用view.setScaleX()view.setScaleY()方法來設(shè)置View的縮放比例。例如:

scaleAnimation.setAnimationListener(new Animation.AnimationListener() {
    @Override
    public void onAnimationStart(Animation animation) {
        //動(dòng)畫開始時(shí)的操作
    }

    @Override
    public void onAnimationEnd(Animation animation) {
        //動(dòng)畫結(jié)束時(shí)的操作
        view.setScaleX(2.0f);
        view.setScaleY(2.0f);
    }

    @Override
    public void onAnimationRepeat(Animation animation) {
        //動(dòng)畫重復(fù)時(shí)的操作
    }
});

這樣,當(dāng)動(dòng)畫結(jié)束后,View的大小就會被設(shè)置為縮放后的大小。

除了縮放效果,ScaleAnimation還支持其他參數(shù)的設(shè)置,如動(dòng)畫的插值器、重復(fù)次數(shù)、重復(fù)模式等。具體可以參考官方文檔。

0