Android --- Frame动画示例

本文详细介绍了如何在Android中创建并使用帧动画。通过一系列步骤,包括准备图片资源、定义XML动画列表、设置布局文件及编写Activity代码,实现了帧动画的基本功能,并提供了开始和停止动画的交互方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Frame动画:

1、找到一组图片c01.jpg,c02.jpg,c03.jpg,c04.jpg,c05.jpg,copy到res/drawable目录下;

2、在res/drawable目录下新建XML文件:frame_anim.xml

<?xml version="1.0" encoding="utf-8"?> <animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false"> <item android:drawable="@drawable/c01" android:duration="500"/> <item android:drawable="@drawable/c02" android:duration="500"/> <item android:drawable="@drawable/c03" android:duration="500"/> <item android:drawable="@drawable/c04" android:duration="500"/> <item android:drawable="@drawable/c05" android:duration="500"/> </animation-list>3、在res/layout目录下新建XML文件:frame_anim_layout.xml

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:scaleType="centerInside" android:id="@+id/imgFrame" android:background="@drawable/frame_anim"></ImageView> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <Button android:text="开始" android:id="@+id/btnStart" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1.0"></Button> <Button android:text="结束" android:id="@+id/btnEnd" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1.0"></Button> </LinearLayout> </LinearLayout>4、Activity文件中的代码:

package com.bison; import android.app.Activity; import android.graphics.drawable.AnimationDrawable; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.ImageView; public class AnimationDemoActivity extends Activity implements OnClickListener { // 开始按钮 private Button btnStart; // 结束按钮 private Button btnEnd; private ImageView imgFrame; // 声明Frame动画对象 private AnimationDrawable frameAnim; /** 初始化 */ public void init() { btnStart = (Button) findViewById(R.id.btnStart); btnEnd = (Button) findViewById(R.id.btnEnd); btnStart.setOnClickListener(this); btnEnd.setOnClickListener(this); imgFrame = (ImageView) findViewById(R.id.imgFrame); // 将ImageView的backgroud声明给Frame动画对象 frameAnim = (AnimationDrawable) imgFrame.getBackground(); } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 加载layout.frame_anim_layout页面 setContentView(R.layout.frame_anim_layout); init(); } public void onClick(View v) { // 判断按钮事件 switch (v.getId()) { case R.id.btnStart: frameAnim.start(); break; case R.id.btnEnd: frameAnim.stop(); break; } } }

PS:Frame动画原理类似于电影胶片,一幕一幕的闪过,在人的视觉停留期快速变动,形成组图,产生动画。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值