在进入程序前,一般都要有一个欢迎图片LOGO或者动画,等待几秒后隐藏Logo或做Intent跳转:
可以使用HandlerThread新建一个线程来执行等待动作,也可以使用Android的TimerTask:
1.HandlerThread:
public class WelcomeAct extends Activity {
protected static final String TAG = "WelcomeAct";
private Handler handler; //因为要重写构造方法,所以不能用匿名内部类
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 设置登录无标题栏
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.welcome);
HandlerThread myThread = new HandlerThread("myHandlerThread");
myThread.start();
handler = new myHandler(myThread.getLooper());
handler.post(new Runnable() {
@Override
public void run() {
try {
//耗时的操作
Thread.sleep(2500);
//handler主要用于异步消息的处理,使用sendMessage()后,方法立即返回,Message放入消息队列,
//等待Message出消息队列,由handlerMessage(Message msg)通知UI线程子线程已经挂起,并使用返回的msg。
handler.sendMessage(handler.obtainMessage());
} catch (InterruptedException e) {
e.printStackTrace();
}
}
});
}
class myHandler extends Handler{
public myHandler(Looper looper) {
super(looper);
}
//负责从消息队列中取消息给UI线程
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
Intent intent = new Intent(WelcomeAct.this, LoginAct.class);
startActivity(intent);
}
}
}
2.使用TimerTask:
public class WelcomeAct extends Activity {
protected static final int LOGINOVER = 0;
protected static final String TAG = "WelcomeAct";
private Handler handler; //因为要重写构造方法,所以不能用匿名内部类
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 设置登录无标题栏
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.welcome);
ProgressBar loading = (ProgressBar)findViewById(R.id.loading);
loading.setVisibility(View.VISIBLE);
HandlerThread myThread = new HandlerThread("myHandlerThread");
myThread.start();
handler = new Handler(){
@Override
public void handleMessage(Message msg) {
if(msg.what == LOGINOVER){
Log.i(TAG, Thread.currentThread().getName());
Intent intent = new Intent(WelcomeAct.this, LoginAct.class);
startActivity(intent);
}
}
};
tt.run();
}
TimerTask tt = new TimerTask() {
@Override
public void run() {
Log.i(TAG, Thread.currentThread().getName());
handler.sendMessageDelayed(handler.obtainMessage(LOGINOVER), 3000);
}
};
}
也可设计为没有Intent跳转,使用View.setVisibility(View.GONE);和 View.VISIBLE来达到想要的效果。
使用TimerTask,打印线程名可以看出,系统没有新开线程,而且达到了阻塞等待的目的,代码量小,推荐用。
分享到:
相关推荐
MTK Android12 (S) 开机动画是一个针对MediaTek(MTK)芯片平台的定制化Android系统组件,主要涉及到手机或设备启动时显示的Logo和动画效果。这些资源文件和代码是Android操作系统的一部分,用于在设备启动时提供...
在Android应用开发中,用户界面(UI)的交互体验至关重要,而Loading动画就是在等待操作完成时提供用户反馈的重要元素。加载动画可以提升用户体验,让用户在等待过程中感到更加舒适,而不是面对一个静止不动的屏幕。...
总的来说,"android程序启动画面源码"是一个学习如何在Android应用中实现启动画面切换效果的实践案例,涵盖了Activity的生命周期、布局设计、动画应用以及时间管理等多个Android开发的关键知识点。开发者可以通过...
2. **启动动画**:在许多应用程序中,Logo展示可能伴随着启动动画,以增加视觉吸引力和减少用户等待启动过程的感知时间。启动动画可以是简单的Logo淡入淡出,也可以是更复杂的动态设计,但要确保不影响应用性能。 3...
"可设置加载结果的Loading控件"是一种专门设计用于提高用户界面(UI)体验的组件,它在应用程序等待数据加载时向用户提供反馈,显示一个可视化的加载状态。这个控件允许开发者自定义加载效果和加载完成后的显示内容...
本文将深入探讨如何创建和优化Android程序的启动界面。 首先,我们需要了解启动界面的基本结构。一个标准的启动界面通常包括一个背景图片、一个logo或者品牌图标,以及可能的加载进度条。在Android中,我们可以使用...
本Demo主要针对Android程序启动时可能出现的短暂白屏问题进行解决,旨在提供一个优雅的启动流程。 首先,让我们了解Android启动页面的基本构成。通常,启动页面是一个简单的Activity,它会在应用程序启动时首先显示...
在开发应用程序时,为了提升用户体验,常常会在程序启动时加入一个短暂显示的“启动画面”或称为“Logo画面”,这通常被称为"Splash Screen"。在本案例中,我们看到的标题是“splash程序启动时显示Logo画面”,描述...
- 启动界面设计应简洁明了,通常包含应用LOGO、应用名称或动画效果。设计时需考虑用户体验,避免过长的等待时间。 - 使用主题(Theme)和样式(Style)来定制启动界面的UI,可以定义背景颜色、图标等元素。 2. **...
启动Activity通常是应用程序的第一个界面,用于展示短暂的动画或logo,并进行一些预加载工作。一旦预加载完成或等待时间到达预设值,它会将用户无缝过渡到主Activity。 1. **启动Activity的创建**: - 创建一个新...
这个界面通常包含应用的LOGO、品牌信息或者简单的动画,旨在提高用户体验,同时为应用的主要功能加载提供时间。在这个场景中,我们将深入探讨如何创建和优化Android的启动画面。 一、启动画面的实现方式 1. **静态...
在Android应用开发中,启动界面(Splash ...通过分析和学习这个"Android程序启动界面源码",开发者不仅可以掌握启动界面的实现方法,还能深入理解Android Activity的生命周期、UI设计、动画效果和异步操作等相关知识。
"Android程序启动界面源码"是主要的学习内容,这个文件可能包含了一个简单的启动界面的实现,包括布局文件(如XML)、Java或Kotlin代码文件(负责控制界面显示逻辑和过渡到主界面)以及可能的动画资源。一般情况下,...
在Android应用开发中,程序启动界面(Splash Screen)通常是用户打开应用时首先看到的界面,它通常用于展示品牌标识、加载应用数据或者进行初始化操作。本资源提供的"Android 程序启动界面源码.zip"包含了一个实现...
本资源提供的"Android程序研发源码Android 加载时闪烁点样式的启动画面.zip"是一个示例,展示了如何在Android应用中实现一种动态的、闪烁点样式的效果来作为启动画面。以下将详细讲解实现此类启动画面的关键知识点:...
例如,可以创建一个`activity_splash.xml`布局文件,包含一个全屏的ImageView用于显示背景图片,一个ImageView或TextView展示Logo,并且可能添加一些动画效果如Alpha或Scale。 ```xml xmlns:android=...
1. 示例代码:可能有Java或Kotlin(Android)或Swift/Objective-C(iOS)的源代码文件,展示了如何在应用程序启动时展示并控制闪屏。 2. 资源文件:如图片、动画序列帧等,这些是创建闪屏动画所必需的素材。 3. 主要...
`res`目录下可能包含启动界面的图片资源,如`Android程序启动界面示例图片.png`,需要适配不同的屏幕尺寸和密度,确保在各种设备上显示良好。 7. **代码结构**: `src`目录下的`SplashActivity.java`将实现启动...
在Android应用开发中,引导页(Splash Screen)通常被用于展示品牌形象、介绍产品特性或进行必要的初始化工作。本文将深入探讨Android应用程序引导页的设计与实现,以及如何通过源码优化工具提升用户体验。 首先,...