`
桥下一粒砂
  • 浏览: 209060 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

启动界面淡入动画显示类

 
阅读更多
啥都不要说了,看代码:
/** 
 * 
 */
package com.lurencun.android.util;

import java.util.HashMap;
import java.util.LinkedList;
import java.util.Map;
import java.util.Queue;

import android.os.Handler;
import android.view.animation.AlphaAnimation;
import android.widget.ImageView;

/**
 * @author chenyoca [桥下一粒砂] (chenyoca@163.com)
 * @data 2011-12-7
 * @desc 用于启动界面显示渐变动画的类。
 */
public class TweeningAnimation {
    private ImageView splashImgView = null;
    private final static String RESOURCE_ID_KEY = "resource_id";
    private final static String RESOURCE_TIME_KEY = "show_time";
    private final static String RESOURCE_ALAPHA_KEY = "start_alaph";
    private final static long DURATION = 1000;
    private Queue<Map<String,Integer>> resource_list = new LinkedList<Map<String,Integer>>();

    public TweeningAnimation(ImageView view){
        splashImgView = view;
    }

    /**
     * 添加一个动画资源
     * @param resource_id 资源ID
     * @param show_time 显示时间(ms)
     * @param start_alaph 起始透明度(0 - 10)
     */
    public void addAnimation(int resource_id,int show_time,int start_alaph){
        Map<String,Integer> item = new HashMap<String, Integer>();
        item.put(RESOURCE_ALAPHA_KEY, start_alaph);
        item.put(RESOURCE_TIME_KEY, show_time);
        item.put(RESOURCE_ID_KEY, resource_id);
        resource_list.add(item);
    }

    /**
     * 显示动画
     */
    public void showAnimation(){
        int _show_time = 0;
        for(Map<String,Integer> item : resource_list){
            final int _resource_id = item.get(RESOURCE_ID_KEY);
            float alapha = (float) (Math.max(0, Math.min(item.get(RESOURCE_ALAPHA_KEY), 10)) / 10.0);
            _show_time += item.get(RESOURCE_TIME_KEY);
            final AlphaAnimation animation = new AlphaAnimation(alapha, 1.0f);
            animation.setDuration(DURATION);
            new Handler().postDelayed(new Runnable(){
                @Override public void run() {
                    splashImgView.setImageResource(_resource_id);
                    splashImgView.startAnimation(animation);
                }
            },_show_time);
        }
    }
}
 
//例子:
 
package com.lurencun.android.util; 

import android.app.Activity;
import android.os.Bundle;
import android.widget.ImageView;

public class DownloadActivity extends Activity {
    /** Called when the activity is first created. */
    private TweeningAnimation tween;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        ImageView v = (ImageView)findViewById(R.id.splash);
        tween = new TweeningAnimation(v);
        tween.addAnimation(R.drawable.cfuture_logo_320dpi, 2000, 2);
        tween.addAnimation(R.drawable.lurencun_logo_320dpi, 3000, 2);
        tween.addAnimation(R.drawable.splash, 3000, 2);
    }
    @Override
    protected void onStart() {
        super.onStart();
        tween.showAnimation();
    }


}
分享到:
评论
1 楼 119568242 2011-12-07  
直接可以用了

相关推荐

    启动界面淡入淡出效果

    标题 "启动界面淡入淡出效果" 涉及到的是在软件启动时,如何通过动画效果提升用户体验,特别是利用MFC(Microsoft Foundation Class)库来实现启动界面的淡入淡出过渡。在Windows应用程序开发中,MFC是一个常用的...

    C# 程序启动界面包括上一步下一步设置(界面淡入淡出效果)

    总的来说,创建一个带有“上一步”、“下一步”功能和淡入淡出效果的C#启动界面需要结合Windows Forms控件的使用、事件处理以及适当的动画效果。通过这样的设计,用户可以更加舒适地进行程序设置,同时提升软件的...

    HTML5 Canvas简单淡入淡出游戏启动界面

    1. **动画帧循环** - 游戏启动界面的淡入淡出效果通常是通过定时器(如`requestAnimationFrame`)来实现的。每一帧都会更新屏幕内容,直到达到预设的动画效果。 2. **颜色混合** - 淡入淡出效果涉及到颜色透明度的...

    QT_启动界面

    QT是Qt Company开发的一...总的来说,创建一个QT_启动界面需要结合Qt的图形界面编程、动画、事件处理以及资源管理等多个方面的知识。通过对这些知识点的掌握和灵活运用,可以打造出功能丰富、视觉效果出色的启动界面。

    C#003启动窗体动画显示

    在C#编程中,"启动窗体动画显示"是一个用于提升用户体验的重要技术,尤其是在开发桌面应用程序时。这个主题主要涉及到Windows Forms或WPF框架下的窗体加载和动画效果的实现。下面将详细介绍如何在C#中创建启动窗体...

    精美的启动界面--VC++

    6. **添加到主程序**:在主程序的入口点(通常是WinMain或main函数)中,调用CSplashDialog类的实例,显示启动界面,然后在适当的时间关闭它,再继续加载应用程序的其余部分。 7. **编译与调试**:最后,编译并运行...

    WPF启动动画demo

    3. **后台初始化**: 同时,开发者可以在启动动画显示的同时进行一些后台任务,如读取配置、初始化数据、加载资源等。这可以通过异步编程技术实现,比如使用`Task`或者`BackgroundWorker`,确保启动动画的显示不会被...

    Qt多界面动画切换实现

    例如,为了平滑地过渡到下一个界面,你可以创建一个动画来改变当前界面的透明度,同时增加目标界面的透明度,这样就可以形成一种淡入淡出的效果。 以下是一段简单的示例代码,展示了如何创建一个动画切换效果: ``...

    软件启动界面源代码,轻松位你的软件增加启动界面

    在源代码中,会有一个特定的类(例如`SplashWnd`),它负责显示启动界面。这个类可能继承自`CWnd`或`CSplashWnd`这样的窗口类,并且包含了加载位图、设置窗口样式、定时器处理等功能。你需要实例化这个类,并在适当...

    启动页面显示动画

    在iOS开发中,启动页面(Launch Screen)是应用在启动时首先展示的界面,它给用户带来第一印象,通常用于加载应用的主界面或者展示品牌形象。在这个特定的场景中,"启动页面显示动画"指的是在启动页面上实现一种动态...

    Android 初始欢迎界面淡出动画效果

    在Android开发中,动画效果是提升用户体验的重要手段之一,尤其是对于初始欢迎界面,一个优雅的淡入淡出动画可以给用户留下深刻的印象。本篇将详细介绍如何在Android中实现这样的动画效果。 首先,我们需要理解...

    漂亮的启动界面和登陆界面设计

    "漂亮的启动界面和登录界面设计"这一主题,涉及到的是软件或应用程序的视觉美学和交互性,尤其是在使用VC++(Microsoft Visual C++)进行开发时。VC++是一个功能强大的集成开发环境,用于创建Windows平台的应用程序...

    vb软件启动界面

    在启动界面中,计时器可用于控制图片的淡入淡出、平滑过渡等动画效果。例如,每过一定时间更换一次图片,以模拟图片加载过程: ```vb Private Sub Timer1_Tick() ' 更新图片 If PictureBox1.Image Is 图片数组(0...

    ImageView以淡入淡出的方式切换显示的图片

    同时,为了实现连续的淡入淡出效果,需要在淡出动画结束后才加载新的图片并启动淡入动画。 总的来说,通过巧妙地利用Android提供的动画工具,我们可以为ImageView创造出丰富的视觉体验。无论是简单的淡入淡出,还是...

    Android 程序启动界面源码.zip

    1. **SplashActivity.java** - 这是启动界面的Activity类。通常它会设置一个定时器,以便在一定时间后跳转到主界面。在AndroidManifest.xml中,这个Activity会被声明为应用的第一个入口。 2. **SplashLayout.xml** ...

    启动界面类

    "启动界面类"就是这样一个组件,它为开发者提供了一个便捷的方式来创建和管理应用的启动画面。 这个启动界面类支持多种图像格式,包括bmp(位图)、jpg(联合图像专家组格式)、png(Portable Network Graphics)和...

    淡入淡出式显示Swing容器组件

    `GlassBox`类是一个自定义的Swing组件,它实现了淡入淡出的显示效果。该类继承自`JComponent`,并重写了`paint`方法来实现透明度的变化。下面将详细解析`GlassBox`的实现逻辑: 1. **动画参数设置**: - `...

    Android4.0动画 淡入淡出 拖动 移动

    在Android开发中,动画是提升用户体验的关键因素之一。在Android 4.0(API Level 14)中,系统引入了新的动画框架,...开发者只需要理解这些基本概念,就能创造出各种各样的动画效果,为用户带来更加生动有趣的界面。

    uniapp 启动界面模板

    5. **资源优化**:为了减少启动时间,启动界面的图片资源应尽可能压缩,并确保其在不同分辨率设备上的显示效果。uniapp支持WebP等高效图片格式,可以进一步减小资源大小。 6. **动画效果**:uniapp提供了丰富的动画...

    WPF page淡入淡出效果

    3. **绑定事件**:在Page的Loaded事件中启动淡入动画,在Unloaded事件中启动淡出动画。这样,当Page被加载或卸载时,动画就会自动执行。 ```csharp private void Page_Loaded(object sender, RoutedEventArgs e) { ...

Global site tag (gtag.js) - Google Analytics