啥都不要说了,看代码:
/**
*
*/
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();
}
}
分享到:
相关推荐
标题 "启动界面淡入淡出效果" 涉及到的是在软件启动时,如何通过动画效果提升用户体验,特别是利用MFC(Microsoft Foundation Class)库来实现启动界面的淡入淡出过渡。在Windows应用程序开发中,MFC是一个常用的...
总的来说,创建一个带有“上一步”、“下一步”功能和淡入淡出效果的C#启动界面需要结合Windows Forms控件的使用、事件处理以及适当的动画效果。通过这样的设计,用户可以更加舒适地进行程序设置,同时提升软件的...
1. **动画帧循环** - 游戏启动界面的淡入淡出效果通常是通过定时器(如`requestAnimationFrame`)来实现的。每一帧都会更新屏幕内容,直到达到预设的动画效果。 2. **颜色混合** - 淡入淡出效果涉及到颜色透明度的...
QT是Qt Company开发的一...总的来说,创建一个QT_启动界面需要结合Qt的图形界面编程、动画、事件处理以及资源管理等多个方面的知识。通过对这些知识点的掌握和灵活运用,可以打造出功能丰富、视觉效果出色的启动界面。
在C#编程中,"启动窗体动画显示"是一个用于提升用户体验的重要技术,尤其是在开发桌面应用程序时。这个主题主要涉及到Windows Forms或WPF框架下的窗体加载和动画效果的实现。下面将详细介绍如何在C#中创建启动窗体...
6. **添加到主程序**:在主程序的入口点(通常是WinMain或main函数)中,调用CSplashDialog类的实例,显示启动界面,然后在适当的时间关闭它,再继续加载应用程序的其余部分。 7. **编译与调试**:最后,编译并运行...
3. **后台初始化**: 同时,开发者可以在启动动画显示的同时进行一些后台任务,如读取配置、初始化数据、加载资源等。这可以通过异步编程技术实现,比如使用`Task`或者`BackgroundWorker`,确保启动动画的显示不会被...
例如,为了平滑地过渡到下一个界面,你可以创建一个动画来改变当前界面的透明度,同时增加目标界面的透明度,这样就可以形成一种淡入淡出的效果。 以下是一段简单的示例代码,展示了如何创建一个动画切换效果: ``...
在源代码中,会有一个特定的类(例如`SplashWnd`),它负责显示启动界面。这个类可能继承自`CWnd`或`CSplashWnd`这样的窗口类,并且包含了加载位图、设置窗口样式、定时器处理等功能。你需要实例化这个类,并在适当...
在iOS开发中,启动页面(Launch Screen)是应用在启动时首先展示的界面,它给用户带来第一印象,通常用于加载应用的主界面或者展示品牌形象。在这个特定的场景中,"启动页面显示动画"指的是在启动页面上实现一种动态...
在Android开发中,动画效果是提升用户体验的重要手段之一,尤其是对于初始欢迎界面,一个优雅的淡入淡出动画可以给用户留下深刻的印象。本篇将详细介绍如何在Android中实现这样的动画效果。 首先,我们需要理解...
"漂亮的启动界面和登录界面设计"这一主题,涉及到的是软件或应用程序的视觉美学和交互性,尤其是在使用VC++(Microsoft Visual C++)进行开发时。VC++是一个功能强大的集成开发环境,用于创建Windows平台的应用程序...
在启动界面中,计时器可用于控制图片的淡入淡出、平滑过渡等动画效果。例如,每过一定时间更换一次图片,以模拟图片加载过程: ```vb Private Sub Timer1_Tick() ' 更新图片 If PictureBox1.Image Is 图片数组(0...
同时,为了实现连续的淡入淡出效果,需要在淡出动画结束后才加载新的图片并启动淡入动画。 总的来说,通过巧妙地利用Android提供的动画工具,我们可以为ImageView创造出丰富的视觉体验。无论是简单的淡入淡出,还是...
1. **SplashActivity.java** - 这是启动界面的Activity类。通常它会设置一个定时器,以便在一定时间后跳转到主界面。在AndroidManifest.xml中,这个Activity会被声明为应用的第一个入口。 2. **SplashLayout.xml** ...
"启动界面类"就是这样一个组件,它为开发者提供了一个便捷的方式来创建和管理应用的启动画面。 这个启动界面类支持多种图像格式,包括bmp(位图)、jpg(联合图像专家组格式)、png(Portable Network Graphics)和...
`GlassBox`类是一个自定义的Swing组件,它实现了淡入淡出的显示效果。该类继承自`JComponent`,并重写了`paint`方法来实现透明度的变化。下面将详细解析`GlassBox`的实现逻辑: 1. **动画参数设置**: - `...
在Android开发中,动画是提升用户体验的关键因素之一。在Android 4.0(API Level 14)中,系统引入了新的动画框架,...开发者只需要理解这些基本概念,就能创造出各种各样的动画效果,为用户带来更加生动有趣的界面。
5. **资源优化**:为了减少启动时间,启动界面的图片资源应尽可能压缩,并确保其在不同分辨率设备上的显示效果。uniapp支持WebP等高效图片格式,可以进一步减小资源大小。 6. **动画效果**:uniapp提供了丰富的动画...
3. **绑定事件**:在Page的Loaded事件中启动淡入动画,在Unloaded事件中启动淡出动画。这样,当Page被加载或卸载时,动画就会自动执行。 ```csharp private void Page_Loaded(object sender, RoutedEventArgs e) { ...