Android 平台提供了兩類動畫,一類是 Tween 動畫,即通過對場景裡的對象不斷做圖像變換(平移、縮放、旋轉)產生動畫效果;第二類是 Frame 動畫,即順序播放事先做好的圖像。本文分析 Tween動畫的rotate實現旋轉效果。下面直接給出代碼,並且附近中有完整的demo,具體不多說,直接上代碼,附近中有項目demo可供下載。
主類:
public class MainActivity extends ActionBarActivity {
private ImageView infoOperatingIV;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
infoOperatingIV = (ImageView)findViewById(R.id.infoOperating); //圖片對象實例化
Animation operatingAnim = AnimationUtils.loadAnimation(this, R.anim.tip); //創建動畫對象並實例化,tip為動畫的文件
LinearInterpolator lin = new LinearInterpolator();
operatingAnim.setInterpolator(lin);
if (operatingAnim != null) {
infoOperatingIV.startAnimation(operatingAnim);
}
}
布局 activity_main.xml
<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:layout_gravity="center"
android:gravity="center"
tools:context="com.example.testanimation.MainActivity" >
<ImageView
android:id="@+id/infobg"
android:layout_width="200dp"
android:layout_height="200dp"
android:src="@drawable/cemung_out_roate"
/>
<ImageView
android:id="@+id/infoOperating"
android:layout_width="200dp"
android:layout_height="200dp"
android:src="@drawable/cemung_in_roate"
/>
</RelativeLayout>
動畫 tip.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<rotate
android:fromDegrees="0"
android:toDegrees="359"
android:duration="1300"
android:repeatCount="-1"
android:pivotX="50%"
android:pivotY="50%" />
</set>