做了个简单的帧动画,在onCreate方法中start,发现只能看到第一帧
<?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/fire01"
android:duration="200"/>
<item
android:drawable="@drawable/fire02"
android:duration="200"/>
<item
android:drawable="@drawable/fire03"
android:duration="200"/>
<item
android:drawable="@drawable/fire04"
android:duration="200"/>
<item
android:drawable="@drawable/fire05"
android:duration="200"/>
<item
android:drawable="@drawable/fire06"
android:duration="200"/>
<item
android:drawable="@drawable/fire07"
android:duration="200"/>
<item
android:drawable="@drawable/fire08"
android:duration="200"/>
<item
android:drawable="@drawable/fire09"
android:duration="200"/>
</animation-list>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<ImageView
android:id="@+id/fire_img"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:background="@drawable/fire_anim" />
</RelativeLayout>
ImageView fireImg = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ImageView fireImg = (ImageView) findViewById(R.id.fire_img);
final AnimationDrawable animDrawable = (AnimationDrawable) fireImg
.getBackground();
animDrawable.start();
}
stackoverflow 上发现一个解决办法
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ImageView fireImg = (ImageView) findViewById(R.id.fire_img);
final AnimationDrawable animDrawable = (AnimationDrawable) fireImg
.getBackground();
fireImg.post(new Runnable() {
@Override
public void run() {
animDrawable.start();
}
});
}
或者在Activity中的onWindowFocusChanged方法中start
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if (fireImg != null) {
AnimationDrawable animDrawable = (AnimationDrawable) fireImg
.getBackground();
animDrawable.start();
}
}
分享到:
相关推荐
在Android平台上,逐帧动画是一种常见的动画实现方式,它通过连续播放一系列的静态图像来创造出动态效果,类似于传统的电影制作手法。"Android 逐帧动画源码.rar"这个压缩包包含了一个关于Android逐帧动画的示例项目...
在Android开发中,应用启动动画(Splash Screen)是用户打开应用程序时首先看到的短暂界面,通常用来展示品牌标识、加载应用资源或者进行一些初始化操作。本文将深入探讨如何实现一个基于GIF的Android应用启动动画,...
或者在XML布局文件中直接将帧动画设置为View的背景,并在Activity的`onCreate()`方法中启动动画: ```xml android:id="@+id/imageView" android:layout_width="wrap_content" android:layout_height="wrap_...
在Android应用开发中,"Android App 启动时显示正在加载图片"是一个常见的用户体验优化策略。这个过程通常称为启动画面或者加载屏幕,它的目的是在应用程序的实际内容加载完成之前,为用户提供一个平滑的过渡,避免...
- 学习和理解示例代码中的关键函数和逻辑,有助于深入理解Android动画系统。 5. **学习与实践** - 通过阅读`JavaApk源码说明.txt`,可以了解代码结构和实现原理,这对理解GIF和帧动画的处理机制非常有帮助。 - `...
在清单1所示的代码中,我们可以看到如何创建一个简单的旋转动画。`RotateAnimation`类被用来定义动画,包括旋转的方向、初始角度和最终角度。`AccelerateDecelerateInterpolator`是一个插值器,用于控制动画的速度...
帧动画概念在Android开发中,帧动画是一种基本的动画形式,它通过连续播放一系列静态图像(帧)来创建动态效果,类似于传统的电影制作原理。每一帧都是一个独立的图片资源,当这些帧按照一定的速度顺序播放时,就会...
5. **添加启动逻辑**:在Application或MainActivity的onCreate方法中,判断是否是首次启动应用,如果是,则显示引导动画,否则直接进入主界面。这个判断可以通过SharedPreferences实现。 6. **测试与优化**:在...
本资源提供了一个关于如何在Android中实现序列帧动画,并添加开始和结束监听的解决方案。 序列帧动画的基本原理是利用`AnimationDrawable`类,它是一个可以包含多个`Drawable`的动画,每个`Drawable`代表一帧。以下...
通过以上步骤,你可以成功地在Android应用中实现首次启动只展示一次的向导页功能,同时还能根据需求自定义每个页面的布局和页码指示器样式。这个功能不仅提升了用户体验,也能有效地引导用户了解应用的核心特性。
本文将深入探讨如何在Android应用中显示GIF动画,并结合一个实际案例来阐述这一过程。 首先,我们需要理解GIF格式。GIF是一种无损压缩的图像格式,特别适用于创建简单的动画,因为它支持多帧图像和透明度。在...
1. 使用`overridePendingTransition()`方法:此方法允许你在启动或结束一个Activity时指定一个进入动画和一个退出动画。例如: ```java override fun onCreate(savedInstanceState: Bundle?) { super.onCreate...
2. **使用Splash Screen(启动画面)**:创建一个简单的启动画面,可以是一张图片或简单的动画,将其设置为应用程序启动时的第一个Activity。这个Splash Screen应该设计得轻量级,避免在此页面执行复杂的逻辑。通过...
- **Activity生命周期**:利用Activity的onCreate()方法加载第一张引导页,然后通过动画效果切换到下一张。 - **帧动画**:可以使用Android提供的帧动画资源(`<animation-list>`),将多张图片按顺序设置,通过...
启动画面可以是一个简单的Activity或者一个Service,用于显示一个预先准备好的图像或者动画,直到主Activity准备好并接管屏幕。 1. **创建启动画面Activity**: 创建一个新的Activity,命名为`SplashActivity`,并...
在Android中,这可以通过创建一个新的Activity来实现,该Activity作为应用的第一个入口。 2. **动画效果** 动态启动界面涉及到Android的动画API。可以使用`AnimationDrawable`或`ValueAnimator`来创建动画效果。`...
3. **启动和关闭**:在适当的时候启动和关闭Splashy,通常在onCreate()方法中启动,onSplashFinished()回调后关闭。 4. **自定义动画**:如果需要自定义动画,可以通过继承`SplashAnimator`类并重写相关方法来实现...
在Android应用开发中,启动页面(也称为启动屏或欢迎界面)是用户首次打开应用时看到的第一个界面。这个界面通常包含品牌标识、加载动画或简单的欢迎信息,为应用的加载过程提供视觉反馈,同时提高用户体验。本文将...
在Android开发中,当应用程序启动时,用户通常会看到一个过渡背景画面,这被称为启动屏幕或启动主题。这个过程涉及到Android应用程序的UI设计、主题应用以及活动(Activity)的生命周期管理。下面我们将深入探讨如何...
这段代码中的`Handler`会在两秒后执行`Runnable`中的逻辑,根据`SharedPreferences`判断是否是第一次启动。如果是首次启动(`isFirstIn`为`true`),则跳转到引导页`GuideActivity`,否则直接跳转到主页面`...