Frame动画其实就是逐帧动画,用法也比Tween动画简单,只需要创建一个AnimationDrawable对象来表示Frame动画,然后通过addFrame方法把每一帧要显示的内容加进去就行了,最后通过start方法就可以播放这个动画了,通过还可以使用
setOneShot()方法来设置动画是否重复播放。
再这里,还需要设置图片的所在位置,首先要在res/anim目录下创建一个xml配置文件,用于存放图片资源的索引,配置的是
一个以<animation-list>根原素和<item>子元素
下面用3种方式来实现这个Frame动画
第一种:直接继承Activity,使用<animation-list>列表来实现
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="逐帧动画"
/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/start"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:text="开始播放动画"/>
<Button
android:id="@+id/stop"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:text="停止播放动画"/>
</LinearLayout>
<ImageView
android:id="@+id/imgview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:background="@anim/birthday"
/>
</LinearLayout>
res/anim/birthday.xml
<?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/birthday1" android:duration="300"/>
<item android:drawable="@drawable/birthday2" android:duration="300"/>
<item android:drawable="@drawable/birthday3" android:duration="300"/>
<item android:drawable="@drawable/birthday4" android:duration="300"/>
<item android:drawable="@drawable/birthday5" android:duration="300"/>
<item android:drawable="@drawable/birthday6" android:duration="300"/>
<item android:drawable="@drawable/birthday7" android:duration="300"/>
<item android:drawable="@drawable/birthday8" android:duration="300"/>
<item android:drawable="@drawable/birthday9" android:duration="300"/>
</animation-list>
FramesActivity.java
package com.loulijun.frames;
import android.app.Activity;
import android.graphics.drawable.AnimationDrawable;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
public class FramesActivity extends Activity {
private AnimationDrawable frameanim;
private Button start,stop;
private ImageView img;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
img = (ImageView)findViewById(R.id.imgview);
start = (Button)findViewById(R.id.start);
stop = (Button)findViewById(R.id.stop);
//获得背景色,并转换为AnimationDrawable对象
frameanim = (AnimationDrawable)img.getBackground();
//为按钮添加监听事件
start.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View v) {
//开始动画
frameanim.start();
}
});
stop.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View v) {
// 停止动画
frameanim.stop();
}
});
}
}
效果如下:具体自己下载运行,我只截了一张图,没有做成gif的图片
- 大小: 48 KB
分享到:
相关推荐
第9章--Android-2D动画.pptx
google cartographer算法对应论文real-time loop closure in 2D LIDAR SLAM
变形--2D转换;2D转换--平移;2D转换--平移;2D转换--平移;2D转换--平移;2D转换--平移;2D转换--缩放;2D转换--缩放;2D转换--缩放;2D转换--缩放;2D转换--缩放;2D转换--倾斜; 2D转换--倾斜;2D转换--倾斜;2D转换--倾斜;2D...
4,GUI人机实验-TFTLCD触摸屏实验--2D图形绘制.rar
使用了Cocos2d-android-1引擎。 在写代码时,误将MonkeyKing写成了moneyKing(包名里) 第一版程序下载 http://pan.baidu.com/s/1o6lWW2m 第二版程序下载 http://pan.baidu.com/s/1dDHxwop 第三版程序下载 ...
1. 请将文件放到cocos2d-1.0.1-x-0.13.0-beta目录下面 2. 打开build_android_ndk_tests.bat 文件 修改set NDK_ROOT=D:\Work7\android-ndk-r7c到你的NDK实际路径即可 3. jni/Application.mk 文件中加入 APP_MODULE : ...
cocos2d-x 游戏类 通过PayPal支持更新第三库: $ 10,$ 50,$ 100等。 经过测试 带有ndk-r10d的cocos命令3.8.1 cocos run -p android --android-studio --app-abi armeabi-v7a:arm64-v8a cocos run -p android --...
63373466-3032-3132-2d35-3836352d3031.zip毕业答辩模板打包下载63373466-3032-3132-2d35-3836352d3031.zip毕业答辩模板打包下载63373466-3032-3132-2d35-3836352d3031.zip毕业答辩模板打包下载63373466-3032-3132-...
cocos2d-androidcocos2d-androidcocos2d-androidcocos2d-androidcocos2d-androidcocos2d-androidcocos2d-androidcocos2d-android
windowsXPshanghai_cityCM3HY-26VYW-6JRYC-X66GX-JVY2D.part1.rar
如果你想用cocos2d开发android游戏,但是又不方便找包,这里就可以为你提供cocos2d开发的所有相关包,解压后得到libs文件夹即可。
The android-page-curl is a 2D View which simulates a page curl effect. Without OpenGL, only the android canvas has been used, so that it can be used in any version of Android! Showcase Page Turner The...
cocos2d-Android-1,完整API文档,实用
Weed-Crusher-Android-Game 带有OpenGL动画2D图形的逻辑游戏
Cocos2d-Android-1游戏开发框架,开发安卓游戏的cocos引擎
mars android游戏开发课程cocos2d-android-1资源
windowsXPshanghai_cityCM3HY-26VYW-6JRYC-X66GX-JVY2D.part3.rar
4,TFTLCD触摸屏实验--2D图形绘制.rar
使用jbox2d物理引擎打造摩拜单车贴纸动画效果