Animation之ScaleAnimation(縮放動畫)
阿新 • • 發佈:2019-01-02
ScaleAnimation(縮放動畫)
縮放的意思就是對圖片或者文字等進行擴大或縮小。下面開始編寫程式碼,相關重要屬性引數的解釋都在程式碼中。
1、編寫main.xml檔案。
2、編寫MainActivity.java檔案。<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"> <ImageView android:id="@+id/image" android:text="@string/hello_world" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/car_one1"/> </RelativeLayout>
其實關於動畫的設定並不難理解,只是一些屬性的引數不好記而已,多用幾遍就好了。package com.example.dell.bitmapproject; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.view.animation.Animation; import android.view.animation.AnimationSet; import android.view.animation.ScaleAnimation; import android.widget.ImageView; public class MainActivity extends AppCompatActivity { private ImageView image; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); image =(ImageView)findViewById(R.id.image); image.setOnClickListener(new OnClickListenerImpl()); } private class OnClickListenerImpl implements View.OnClickListener { @Override public void onClick(View v) { /* AnimationSet相當於一個動畫的集合,true表示使用Animation的interpolator false則是使用自己的。 Interpolator 被用來修飾動畫效果,定義動畫的變化率,可以使存在的動畫效果 accelerated(加速),decelerated(減速),repeated(重複),bounced(彈跳)等。 */ AnimationSet animationSet = new AnimationSet(true); /* 引數解釋: 第一個引數:X軸水平縮放起始位置的大小(fromX)。1代表正常大小 第二個引數:X軸水平縮放完了之後(toX)的大小,0代表完全消失了 第三個引數:Y軸垂直縮放起始時的大小(fromY) 第四個引數:Y軸垂直縮放結束後的大小(toY) 第五個引數:pivotXType為動畫在X軸相對於物件位置型別 第六個引數:pivotXValue為動畫相對於物件的X座標的開始位置 第七個引數:pivotXType為動畫在Y軸相對於物件位置型別 第八個引數:pivotYValue為動畫相對於物件的Y座標的開始位置 (第五個引數,第六個引數),(第七個引數,第八個引數)是用來指定縮放的中心點 0.5f代表從中心縮放 */ ScaleAnimation scaleAnimation = new ScaleAnimation(1,0.5f,1,0.5f, Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f); //3秒完成動畫 scaleAnimation.setDuration(2000); //將AlphaAnimation這個已經設定好的動畫新增到 AnimationSet中 animationSet.addAnimation(scaleAnimation); //啟動動畫 MainActivity.this.image.startAnimation(animationSet); } } }