逐帧动画
定义:通过播放预先排序好的图片来实现动态的画面.(一帧一帧的图片逐次播放形成动画)
思路 1.首先在图片资源文件(res/drawable目录)下放图片
图片素材: | | | | | | |
文件名称: | icon1.png | icon2.png | icon3.png | icon4.png | icon5.png | icon6.png |
2.建立文件(animation1.xml) ,文件里item
正序
<?xml version="1.0" encoding="utf-8"?> <animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="true"> <item android:drawable="@drawable/icon1" android:duration="150"></item> <item android:drawable="@drawable/icon2" android:duration="150"></item> <item android:drawable="@drawable/icon3" android:duration="150"></item> <item android:drawable="@drawable/icon4" android:duration="150"></item> <item android:drawable="@drawable/icon5" android:duration="150"></item> <item android:drawable="@drawable/icon6" android:duration="150"></item> </animation-list>
(其中oneshot代表着是否只展示一遍,设置为false会不停的循环播放动画 根标签下,通过item标签对动画中的每一个图片进行声明 )
倒序(把图片顺序倒着放)
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/icon6" android:duration="150"></item> <item android:drawable="@drawable/icon5" android:duration="150"></item> <item android:drawable="@drawable/icon4" android:duration="150"></item> <item android:drawable="@drawable/icon3" android:duration="150"></item> <item android:drawable="@drawable/icon2" android:duration="150"></item> <item android:drawable="@drawable/icon1" android:duration="150"></item> </animation-list>
布局文件
<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.day2017_6_14_er.MainActivity"> <ImageView android:id="@+id/animationtv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="5px" android:src="@drawable/animation1" /> <Button android:id="@+id/buttonA" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="5px" android:text="顺序显示" /> <Button android:id="@+id/buttonB" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="5px" android:text="停止" /> <Button android:id="@+id/buttonC" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="5px" android:text="倒序显示" /> </LinearLayout>主页面
package com.example.day2017_6_14_er; import android.graphics.drawable.AnimationDrawable; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.ImageView; public class MainActivity extends AppCompatActivity { private ImageView image; private Button buttonA; private Button buttonB; private Button buttonC; private AnimationDrawable drawable; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //获取imageview image = (ImageView) this.findViewById(R.id.animationtv); //获取3个按钮 buttonA = (Button) this.findViewById(R.id.buttonA); buttonB = (Button) this.findViewById(R.id.buttonB); buttonC = (Button) this.findViewById(R.id.buttonC); buttonA.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //正序 image.setImageResource(R.drawable.animation1); drawable = (AnimationDrawable) image.getDrawable(); drawable.start();//开始 } }); buttonB.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //停止 drawable = (AnimationDrawable) image.getDrawable(); drawable.stop();//停止 } }); buttonC.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //倒序
image.setImageResource(R.drawable.animation2); drawable = (AnimationDrawable) image.getDrawable(); drawable.start();//开始
} }); } }AnimationDrawable是实现Drawable animations的基