- 浏览: 2204307 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (1240)
- mac/IOS (287)
- flutter (1)
- J2EE (115)
- android基础知识 (582)
- android中级知识 (55)
- android组件(Widget)开发 (18)
- android 错误 (21)
- javascript (18)
- linux (70)
- 树莓派 (18)
- gwt/gxt (1)
- 工具(IDE)/包(jar) (18)
- web前端 (17)
- java 算法 (8)
- 其它 (5)
- chrome (7)
- 数据库 (8)
- 经济/金融 (0)
- english (2)
- HTML5 (7)
- 网络安全 (14)
- 设计欣赏/设计窗 (8)
- 汇编/C (8)
- 工具类 (4)
- 游戏 (5)
- 开发频道 (5)
- Android OpenGL (1)
- 科学 (4)
- 运维 (0)
- 好东西 (6)
- 美食 (1)
最新评论
-
liangzai_cool:
请教一下,文中,shell、C、Python三种方式控制led ...
树莓派 - MAX7219 -
jiazimo:
...
Kafka源码分析-序列5 -Producer -RecordAccumulator队列分析 -
hp321:
Windows该命令是不是需要安装什么软件才可以?我试过不行( ...
ImageIO读jpg的时候出现javax.imageio.IIOException: Unsupported Image Type -
hp321:
Chenzh_758 写道其实直接用一下代码就可以解决了:JP ...
ImageIO读jpg的时候出现javax.imageio.IIOException: Unsupported Image Type -
huanghonhpeng:
大哥你真强什么都会,研究研究。。。。小弟在这里学到了很多知识。 ...
android 浏览器
在看到编写简单的动画的时候,想到了android上也可以做到这一点,只是几个图片来回的切换。这种显示方式学名叫做:frame by frame animation,顺序播放事先做好的图像,跟电影类似;
效果:
res/anim/picture_animation.xml:
main.xml布局文件:
IaiaiActivity.java类:
注:代码运行的结果想必大家应该就知道了(图片按照顺序的播放一次),不过有一点需要强调的是:启动Frame Animation动画的代码rocketAnimation.start(); 不能在OnCreate()中,因为在OnCreate()中AnimationDrawable还没有完全的与ImageView绑定,在OnCreate()中启动动画,就只能看到第一张图片。
XML属性:
下面,阅读Android SDK中对AnimationDrawable的介绍,有个简单的了解:
效果:
res/anim/picture_animation.xml:
<?xml version="1.0" encoding="utf-8"?> <!-- 动画帧集合对象 --> <animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false"> <!--动画帧对象 android:duration表示每帧动画显示的时间,放在drawable下的动画图片不能太大,否则会内存爆掉 --> <item android:drawable="@drawable/camp_fire1" android:duration="83" /> <item android:drawable="@drawable/camp_fire2" android:duration="83" /> <item android:drawable="@drawable/camp_fire3" android:duration="83" /> <item android:drawable="@drawable/camp_fire4" android:duration="83" /> <item android:drawable="@drawable/camp_fire5" android:duration="83" /> <item android:drawable="@drawable/camp_fire6" android:duration="83" /> <item android:drawable="@drawable/camp_fire7" android:duration="83" /> <item android:drawable="@drawable/camp_fire8" android:duration="83" /> <item android:drawable="@drawable/camp_fire9" android:duration="83" /> <item android:drawable="@drawable/camp_fire10" android:duration="83" /> <item android:drawable="@drawable/camp_fire11" android:duration="83" /> <item android:drawable="@drawable/camp_fire12" android:duration="83" /> <item android:drawable="@drawable/camp_fire13" android:duration="83" /> <item android:drawable="@drawable/camp_fire14" android:duration="83" /> <item android:drawable="@drawable/camp_fire15" android:duration="83" /> <item android:drawable="@drawable/camp_fire16" android:duration="83" /> <item android:drawable="@drawable/camp_fire17" android:duration="83" /> </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"> <Button android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="start" android:id="@+id/start" /> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/imageId" android:src="@anim/picture_animation" /> </LinearLayout>
IaiaiActivity.java类:
package com.iaiai.activity; 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; /** * * <p> * Title: IaiaiActivity.java * </p> * <p> * E-Mail: 176291935@qq.com * </p> * <p> * QQ: 176291935 * </p> * <p> * Http: iaiai.iteye.com * </p> * <p> * Create time: 2011-7-28 * </p> * * @author 丸子 * @version 0.0.1 */ public class IaiaiActivity extends Activity { private ImageView imageView; private AnimationDrawable draw = null; private Button start; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); this.imageView = (ImageView) findViewById(R.id.imageId); this.draw = (AnimationDrawable) imageView.getDrawable(); this.start = (Button) findViewById(R.id.start); this.start.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { if (draw.isRunning()) { draw.stop(); start.setText("start"); } else { draw.stop(); draw.start(); start.setText("passe"); } } }); } }
注:代码运行的结果想必大家应该就知道了(图片按照顺序的播放一次),不过有一点需要强调的是:启动Frame Animation动画的代码rocketAnimation.start(); 不能在OnCreate()中,因为在OnCreate()中AnimationDrawable还没有完全的与ImageView绑定,在OnCreate()中启动动画,就只能看到第一张图片。
XML属性:
属性 | 说明 |
drawable | 当前帧引用的drawable资源 |
duration | 当前帧显示的时间(毫秒为单位) |
oneshot | 如果为true,表示动画只播放一次停止在最后一帧上,如果设置为false表示动画循环播放。 |
variablePadding | If true, allows the drawable’s padding to change based on the current state that is selected. |
visible | 规定drawable的初始可见性,默认为flase; |
下面,阅读Android SDK中对AnimationDrawable的介绍,有个简单的了解:
AnimationDrawable | |
获取、设置动画的属性 | |
int getDuration() | 获取动画的时长 |
int getNumberOfFrames() | 获取动画的帧数 |
boolean isOneShot()/Void setOneShot(boolean oneshot) | 获取oneshot属性/设置oneshot属性 |
void inflate(Resurce r,XmlPullParser p,AttributeSet attrs) | |
增加、获取帧动画 | |
Drawable getFrame(int index) | 获取某帧的Drawable资源 |
void addFrame(Drawable frame,int duration) | 为当前动画增加帧(资源,持续时长) |
动画控制 | |
void start() | 开始动画 |
void run() | 外界不能直接掉调用,使用start()替代 |
boolean isRunning() | 当前动画是否在运行 |
void stop() | 停止当前动画 |
发表评论
-
带你深入理解 FLUTTER 中的字体“冷”知识
2020-08-10 23:40 635本篇将带你深入理解 Flutter 开发过程中关于字体和文 ... -
Flutter -自定义日历组件
2020-03-01 17:56 1111颜色文件和屏幕适配的文件 可以自己给定 import ... -
Dart高级(一)——泛型与Json To Bean
2020-02-23 19:13 1005从 Flutter 发布到现在, 越来越多人开始尝试使用 Da ... -
flutter loading、Progress进度条
2020-02-21 17:03 1181Flutter Progress 1 条形无固定值进度条 ... -
Flutter使用Https加载图片
2020-02-21 01:39 1020Flutter使用Https加载图片 使用http加载图片出 ... -
flutter shared_preferences 异步变同步
2020-02-21 00:55 848前言 引用 在开发原生iOS或Native应用时,一般有判断上 ... -
Flutter TextField边框颜色
2020-02-19 21:31 937监听要销毁 myController.dispose(); T ... -
flutter Future的正确用法
2020-02-18 21:55 808在flutter中经常会用到异步任务,dart中异步任务异步处 ... -
记一次Flutter简单粗暴处理HTTPS证书检验方法
2020-02-18 14:13 979最近在做Flutter项目到了遇到一个无解的事情,当使用Ima ... -
flutter 获取屏幕宽度高度 通知栏高度等屏幕信息
2019-07-27 08:39 1344##MediaQuery MediaQuery.of(con ... -
关于flutter RefreshIndicator扩展listview下拉刷新的问题
2019-07-10 19:40 1143当条目过少时listview某些嵌套情况下可能不会滚动(条目 ... -
flutter listview 改变状态的时候一直无限添加
2019-07-10 16:01 791setstate的时候会一直无限的调用listview.bui ... -
Flutter Android端启动白屏问题的解决
2019-07-09 00:51 1525问题描述 Flutter 应用在 Android 端上启动时 ... -
Flutter中SnackBar使用
2019-07-08 23:43 781底部弹出,然后在指定时间后消失。 注意: build(Bui ... -
Flutter 之点击空白区域收起键盘
2019-07-08 18:43 1792点击空白处取消TextField焦点这个需求是非常简单的,在学 ... -
Flutter 弹窗 Dialog ,AlertDialog,IOS风格
2019-07-08 18:04 1383import 'package:flutter/mate ... -
flutter ---TextField 之 输入类型、长度限制
2019-07-08 14:30 2337TextField想要实现输入类型、长度限制需要先引入impo ... -
【flutter 溢出BUG】键盘上显示bottom overflowed by 104 PIXELS
2019-07-08 11:13 1567一开始直接使用Scaffold布局,body:new Colu ... -
解决Flutter项目卡在Initializing gradle...界面的问题
2019-07-07 12:53 880Flutter最近很火,我抽出了一点时间对Flutter进行了 ... -
关于android O 上 NotificationChannel 的一些注意事项
2019-07-04 11:47 941最近在适配android O,遇到个问题,应用中原本有设置界面 ...
相关推荐
Android动画主要分为两大类:Tween动画(渐变动画)和Frame-by-frame动画(逐帧动画)。这两种动画形式能够满足开发者对于基本动画效果的需求。 #### 二、XML中的动画定义 Android动画可以通过XML文件定义,并在...
### Android Animation动画基础知识点 #### 一、Android动画类型 Android平台支持多种动画效果,主要分为两类:**基于XML的动画**与**基于Java代码的动画**。 1. **基于XML的动画**主要包括: - **alpha(渐变...
Android提供了多种动画机制,主要分为两类:Tweened Animation(渐变动画)和Frame-by-Frame Animation(逐帧动画)。接下来,我们将深入探讨这两种动画类型及其具体实现方法。 1. Tweened Animation (渐变动画) ...
Android 动画主要分为两类:Tweened Animation(渐变动画)和Frame-by-Frame Animation(逐帧动画)。这两种动画方式各有特点,可以根据不同的需求选择使用。 Tweened Animation 包括四种基本类型:AlphaAnimation...
Android 动画模式有两种:tweened animation(渐变动画)和 frame by frame(画面转换动画)。tweened animation 是指从一个状态渐变到另一个状态的动画效果,例如 alpha、scale、rotate 动画效果。frame by frame ...
本文档将详细介绍Android中的动画效果,并深入探讨两种主要的动画模式:渐变动画(Tweened Animation)与画面转换动画(Frame-by-Frame Animation),以及如何在XML文件中定义这些动画。 #### 二、Android动画类型 ...
逐帧动画(Frame-by-Frame Animation)是一种基本的动画形式,其原理是通过快速连续显示多个静态图像帧来模拟动态效果。这种动画方式与GIF动画相似,适用于需要复杂动画效果的场景。在Android中,逐帧动画通常使用`...
Frame-by-frame animation**:Tween动画是基于关键帧的,而frame-by-frame动画则需要逐帧绘制,适用于更复杂的动画场景。 - **LayoutTransition**:自动处理布局更改时的动画效果,如添加、删除或改变视图的大小。...
本文将深入探讨Android的基础Animation动画,包括动画类型、动画模式、如何在XML文件中定义动画以及具体的动画效果解析。 1. Animation动画类型: Android的animation系统主要包括四种基本类型,它们可以分为两类...
在Android平台上,逐帧动画(Frame-by-Frame Animation)是一种常用的技术,用于创建连续的视觉效果,如动画短片或游戏中的角色动作。这个“android手机应用源码逐帧动画源码.rar”压缩包文件提供了关于如何在...
5、如果一切正常,那么可以分别看到帧动画(frame-by-frame)、布局动画(layout animation)和视图动画(view animation) 目的:动画效果可以让用户的体验感非常好。在“演示Android中的文字和图片特效控件的使用”资源...
本示例主要关注的是逐帧动画(Frame-by-Frame Animation),这是一种常见的动画实现方式,尤其适用于创建连续的动态效果,如人物行走、物体翻转等。逐帧动画通过连续播放一系列静态图片来达到动态视觉效果。 在...
在Android中,动画主要分为两大类:渐变动画(Tweened Animation)和帧动画(Frame-by-frame Animation)。 #### 二、Android动画类型 ##### 1. 渐变动画(Tweened Animation) 渐变动画是指在动画过程中视图的...
2. Frame-by-frame Animations(帧动画): - 这种类型的动画通常用于播放一系列连续的图片,如GIF动画,通过按时间间隔逐帧显示Drawable资源来实现。 实现Tweened Animations的步骤如下: 1. 创建一个...
在Android应用开发中,逐帧动画(Frame-by-Frame Animation)是一种常见的动画实现方式,尤其适用于游戏或复杂的交互效果。本资源"Android程序研发源码Android 逐帧动画源码.zip"提供了一个名为"AnimationDemo"的...
根据实现方式的不同,Android动画主要分为两类:渐变动画(Tween Animation)和逐帧动画(Frame-by-Frame Animation)。此外,动画还可以通过XML文件或者Java代码来定义。 #### 二、动画类型 Android支持多种动画...
2. **Frame-by-Frame Animation (帧动画)**:这种动画模式则是通过快速连续播放一系列不同的图像来模拟运动的效果。适用于复杂的动画场景。 #### 三、XML 文件中定义动画 要在 Android 应用中定义动画,首先需要...