android与逐帧动画:

效果图:

android之动画(一)通过AnimationDrawable控制逐帧动画_第1张图片

当我们点击按钮时,该图片会不停的旋转,当再次点击按钮时,会停止在当前的状态。

activity代码:

package cn.com.chenzheng_java.animation; import android.app.Activity; import android.graphics.drawable.AnimationDrawable; import android.os.Bundle; import android.view.View; import android.widget.ImageView; /** * @description android中的逐帧动画. * 逐帧动画的原理很简单,跟电影的播放一样,一张张类似的图片不停的切换,当切换速度达到一定值时, * 我们的视觉就会出现残影,残影的出现保证了视觉上变化的连续性,这时候图片的切换看在我们眼中就跟真实的一样了。 * 想使用逐帧动画: * 第一步:需要在res/drawable文件夹下新建一个xml文件,该文件详细定义了动画播放时所用的图片、切换每张图片 * 所用的时间、是否为连续播放等等。(有些文章说,在res/anim文件夹下放置该文件,事实证明,会出错哦) * 第二步:在代码中,将该动画布局文件,赋值给特定的图片展示控件,如本例子中的ImageView。 * 第三步:通过imageView.getBackGround()获取相应的AnimationDrawable对象,然后通过该对象的方法进行控制动画 * @author chenzheng_java * */ public class Animation1Activity extends Activity { ImageView imageView ; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.animation1); imageView = (ImageView) findViewById(R.id.imageView_animation1); imageView.setBackgroundResource(R.drawable.animation1_drawable); } public void myClickHandler(View targetButton){ // 获取AnimationDrawable对象 AnimationDrawable animationDrawable = (AnimationDrawable)imageView.getBackground(); // 动画是否正在运行 if(animationDrawable.isRunning()){ //停止动画播放 animationDrawable.stop(); } else{ //开始或者继续动画播放 animationDrawable.start(); } } }

animation1.xml文件:

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <Button android:id="@+id/button_animation1" android:text="动画开始" android:layout_gravity="center_horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="myClickHandler"></Button> <ImageView android:id="@+id/imageView_animation1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1"></ImageView> </LinearLayout>

存放动画文件的xml文件:

<?xml version="1.0" encoding="utf-8"?> <!-- 根标签为animation-list,其中oneshot代表着是否只展示一遍,设置为false会不停的循环播放动画 根标签下,通过item标签对动画中的每一个图片进行声明 android:duration 表示展示所用的该图片的时间长度 --> <animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false" > <item android:drawable="@drawable/a1" android:duration="50"></item> <item android:drawable="@drawable/a2" android:duration="50"></item> <item android:drawable="@drawable/a3" android:duration="50"></item> <item android:drawable="@drawable/a4" android:duration="50"></item> <item android:drawable="@drawable/a5" android:duration="50"></item> <item android:drawable="@drawable/a6" android:duration="50"></item> </animation-list>

除此之外:在AnimationDrawable中,我们还可以看到如下的几个重要方法:

setOneShot(boolean flag) 和在配置文件中进行配置一样,可以设置动画是否播放一次,false为连续播放;

addFrame (Drawable frame, int duration) 动态的添加一个图片进入该动画中

更多相关文章

  1. Android Widget 中ListView加载网络图片
  2. android 下改变默认的checkbox的 选中 和被选中 图片
  3. Android 调用相册 拍照 实现系统控件缩放 切割图片
  4. Android中解析xml文件的接口
  5. androidの高仿支付宝扫描动画效果
  6. Android 各种类型的资源 文件
  7. 混合开发-H5 调用Android 的相册和照相机上传图片的问题
  8. Android之设置ListView数据显示的动画效果

随机推荐

  1. Android 禁止输入emoji表情符号
  2. 130292015044 上官伟 第一章作业
  3. 利用productFlavors实现一套代码打包多版
  4. Android Studio升级3.5.0总结
  5. android的MultiAutoCompleteTextView、Au
  6. Android 监听开机广播启动服务 动态注册
  7. android button设置边框背景颜色
  8. Android中程序与Service交互的方式——交
  9. Android基础(一) ImageButton
  10. Android(安卓)显示Intent和隐示Intent