//布局xml文件
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.switcher.MainActivity"
tools:ignore="MergeRootFrame" >
<ViewSwitcher
android:id="@+id/switcher"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true" >
<RelativeLayout
android:layout_width="300dp"
android:layout_height="300dp" >
<Button
android:id="@+id/button"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="loading" />
</RelativeLayout>
<!-- 动画视图 -->
<View
android:id="@+id/login_loading"
android:layout_width="135.0dip"
android:layout_height="135.0dip"
android:layout_gravity="center"
android:background="@anim/login_loading" />
</ViewSwitcher>
</RelativeLayout>
//res/anim/login_loading.xml, 逐帧动画效果
<?xml version="1.0" encoding="UTF-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false">
<item android:duration="100">
<layer-list>
<item android:drawable="@drawable/login_loading_00" />
<item android:drawable="@drawable/login_loading_10" />
</layer-list>
</item>
<item android:duration="100">
<layer-list>
<item android:drawable="@drawable/login_loading_01" />
<item android:drawable="@drawable/login_loading_11" />
</layer-list>
</item>
<item android:duration="100">
<layer-list>
<item android:drawable="@drawable/login_loading_02" />
<item android:drawable="@drawable/login_loading_12" />
</layer-list>
</item>
<item android:duration="100">
<layer-list>
<item android:drawable="@drawable/login_loading_03" />
<item android:drawable="@drawable/login_loading_13" />
</layer-list>
</item>
<item android:duration="100">
<layer-list>
<item android:drawable="@drawable/login_loading_04" />
<item android:drawable="@drawable/login_loading_14" />
</layer-list>
</item>
<item android:duration="100">
<layer-list>
<item android:drawable="@drawable/login_loading_05" />
<item android:drawable="@drawable/login_loading_15" />
</layer-list>
</item>
<item android:duration="100">
<layer-list>
<item android:drawable="@drawable/login_loading_06" />
<item android:drawable="@drawable/login_loading_16" />
</layer-list>
</item>
<item android:duration="100">
<layer-list>
<item android:drawable="@drawable/login_loading_07" />
<item android:drawable="@drawable/login_loading_17" />
</layer-list>
</item>
<item android:duration="100">
<layer-list>
<item android:drawable="@drawable/login_loading_08" />
<item android:drawable="@drawable/login_loading_18" />
</layer-list>
</item>
<item android:duration="100">
<layer-list>
<item android:drawable="@drawable/login_loading_09" />
<item android:drawable="@drawable/login_loading_19" />
</layer-list>
</item>
</animation-list>
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final ViewSwitcher switcher=(ViewSwitcher)this.findViewById(R.id.switcher);
switcher.setInAnimation(this,R.anim.in);//切换动画效果
switcher.setOutAnimation(this,R.anim.out);
Button button=(Button)this.findViewById(R.id.button);
final View view=(View)this.findViewById(R.id.login_loading);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
AnimationDrawable animationDrawable=(AnimationDrawable)view.getBackground();
animationDrawable.start();//开始逐帧动画
switcher.showNext();//显示动画视图
}
});
}
}
效果图
http://blog.youkuaiyun.com/aikongmeng/article/details/14129319
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2012/1112/545.html