安卓动画之Frame Animation(逐帧动画)

来源:互联网 发布:苹果软件商店 编辑:程序博客网 时间:2024/06/05 20:14

这里记录一下安卓动画形式之一    Frame Animation(逐帧动画)。                        参考地址

效果图:

点击开始按钮,播放动画。点击停止按钮,停止动画。(没有GIF图片,见谅)

第一步:布局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:id="@+id/activity_main"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    tools:context="com.example.demo.MainActivity">    <LinearLayout        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:orientation="horizontal">        <Button            android:id="@+id/btn_start"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="开始动画" />        <Button            android:id="@+id/btn_end"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="停止动画" />    </LinearLayout>    <ImageView        android:id="@+id/animationlist_img"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:src="@drawable/animationlist" /></LinearLayout>

第二步:在res/drawable目录下一个文件animationlist.xml

相应代码:

<animation-list xmlns:android="http://schemas.android.com/apk/res/android"    android:oneshot="false">    <item android:drawable="@drawable/waiting_1" android:duration="200"/>    <item android:drawable="@drawable/waiting_2" android:duration="200"/>    <item android:drawable="@drawable/waiting_3" android:duration="200"/>    <item android:drawable="@drawable/waiting_4" android:duration="200"/>    <item android:drawable="@drawable/waiting_5" android:duration="200"/>    <item android:drawable="@drawable/waiting_6" android:duration="200"/>    <item android:drawable="@drawable/waiting_7" android:duration="200"/>    <item android:drawable="@drawable/waiting_8" android:duration="200"/>    <item android:drawable="@drawable/waiting_9" android:duration="200"/>    <item android:drawable="@drawable/waiting_10" android:duration="200"/>    <item android:drawable="@drawable/waiting_11" android:duration="200"/>    <item android:drawable="@drawable/waiting_12" android:duration="200"/></animation-list>

第三步:MainActivity中的代码

public class MainActivity extends Activity {    private ImageView animationlist_img;    private Button btn_start, btn_end;    private AnimationDrawable animationDrawable;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        initview();    }    private void initview() {        animationlist_img = (ImageView) findViewById(R.id.animationlist_img);        btn_start = (Button) findViewById(R.id.btn_start);        btn_end = (Button) findViewById(R.id.btn_end);    }    @Override    public void onWindowFocusChanged(boolean hasFocus) {        super.onWindowFocusChanged(hasFocus);        animationDrawable = (AnimationDrawable) animationlist_img.getDrawable();        btn_start.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                animationDrawable.start();            }        });        btn_end.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                animationDrawable.stop();            }        });    }}