这里记录一下安卓动画形式之一 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(); } }); } }
本文介绍了一种安卓动画形式——FrameAnimation(逐帧动画)的实现方法。通过布局设置、XML资源定义及Java代码控制,实现了动画的播放与停止功能。
&spm=1001.2101.3001.5002&articleId=75014024&d=1&t=3&u=03c026592db64ab8947b1261d6da7585)
2104

被折叠的 条评论
为什么被折叠?



