1、运行效果
第一张是本地的启动图,第二张是网络启动图
2、用到的第三方jar包 Android-Universal-Image-Loader-master
3、主要方法
(1)MyApplication
package com.app.android01 ;
import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.nostra13.universalimageloader.core.assist.QueueProcessingType;
import android.app.Application;
import android.content.Context;
import android.graphics.Bitmap.Config;
public class MyApplication extends Application {
public static DisplayImageOptions options;
@Override
public void onCreate() {
super.onCreate();
initImageLoader( getApplicationContext() );
}
private void initImageLoader(Context context) {
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context)
.threadPriority(Thread.NORM_PRIORITY - 2)
.denyCacheImageMultipleSizesInMemory()
.diskCacheExtraOptions(720, 1280, null)
.diskCacheFileNameGenerator(new Md5FileNameGenerator())
.diskCacheSize(50 * 1024 * 1024) // 50 Mb
.tasksProcessingOrder(QueueProcessingType.LIFO)
.diskCacheFileCount( 500 )
.build();
ImageLoader.getInstance().init( config );
initOptions() ;
}
private void initOptions(){
options = new DisplayImageOptions.Builder()
.cacheInMemory(true) //启用内存缓存
.cacheOnDisk(true) //启用磁盘缓存
.considerExifParams(true)
.bitmapConfig(Config.RGB_565 )
.build();
}
}
(2)WelcomeActivity
package com.app.android01 ;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.listener.SimpleImageLoadingListener;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.widget.ImageView;
public class WelcomeActivity extends Activity {
private boolean tag = true ;
//总时间
private int totalTime = 0 ;
//网络启动画
private String imageString = "http://c.hiphotos.baidu.com/image/pic/item/8435e5dde71190efec7149d6cc1b9d16fdfa6035.jpg" ;
private ImageView welcome_image ;
/**
* Handler:跳转到不同界面
*/
private Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case 1 :
totalTime = totalTime + 200 ;
if( totalTime == 3000 ){ //如果总时间大于3秒,就跳转到MainActivity,并且结束计数线程
tag = false ;
startActivity( new Intent( WelcomeActivity.this , MainActivity.class ));
finish() ;
}
break ;
}
super.handleMessage(msg);
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView( R.layout.activity_welcome ) ;
welcome_image = (ImageView) findViewById( R.id.welcome_image ) ;
//启动记时工具
new Thread(new ThreadShow()).start() ;
ImageLoader.getInstance().loadImage( imageString , MyApplication.options , new SimpleImageLoadingListener(){
@SuppressLint("NewApi") @Override
public void onLoadingComplete(String imageUri, View view,
Bitmap loadedImage) {
if( totalTime <= 800 ){ //如果在800毫秒内把网络图片加载出来就显示,否则就只显示本地的
Drawable drawable = new BitmapDrawable( WelcomeActivity.this.getResources(), loadedImage );
welcome_image.setBackground( drawable ) ;
}
}
});
}
/**
* 线程类
* @author admin
* 计时器
*/
class ThreadShow implements Runnable {
@Override
public void run() {
while ( tag ) {
try {
Thread.sleep( 200 ); //每间隔200毫秒发送一次
Message msg = new Message();
msg.what = 1 ;
mHandler.sendMessage(msg);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}
(3)MainActivity
package com.app.android01 ;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class MainActivity extends Activity {
private TextView textView ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView( R.layout.activity_main ) ;
textView = (TextView) findViewById( R.id.tv ) ;
}
}
4、所需要的权限
5、项目下载地址
android程序启动画面之Splash总结[转]
方法一: 很多应用都会有一个启动界面.欢迎画面慢慢隐现,然后慢慢消隐.实现这种效果的方法有两种(暂时只发现两种)1.使用两个Activity,程序启动时候load第一张Activity,然后由tick ...
android开发之画图版
android开发之画图版 一.新的开始,也是新的挑战: 开始学习java,除了刚开始的时候有些难,觉得难有些晕,慢慢接触之后也就挺好的了, 学习了4天的安卓开发,完成了一个小程序,收获还是不小的:有 ...
[FMX] Android APP 启动黑屏优化补丁
使用说明 *************************************************** Android APP 启动黑屏优化补丁 作者: Swish, YangYxd 201 ...
Android App 启动页(Splash)黑/白闪屏现象产生原因与解决办法(转)
转载: Android App 启动页(Splash)黑/白闪屏现象产生原因与解决办法 首先感谢博主分享,本文作为学习记录 惊鸿一瞥 微信的启动页,相信大家都不陌生. 不知道大家有没有发现一个现象 ...
Delphi开发 Android 程序启动画面简单完美解决方案
原文在这里 还是这个方法好用,简单!加上牧马人做的自动生成工具,更是简单. 以下为原文,向波哥敬礼! 前面和音儿一起研究 Android 下启动画面的问题,虽然问题得到了解决,但是,总是感觉太麻烦,主 ...
设置Android Studio启动时可选最近打开过的工程
Android Studio启动时,默认会打开最近关闭的工程. 如果想Android Studio在启动时,打开欢迎界面(Welcome to Android Studio界面),则可以通过设置Set ...
Android自定义View 画弧形,文字,并增加动画效果
一个简单的Android自定义View的demo,画弧形,文字,开启一个多线程更新ui界面,在子线程更新ui是不允许的,但是View提供了方法,让我们来了解下吧. 1.封装一个抽象的View类 B ...
Android开机启动Activity或者Service方法
本文出自 “Bill_Hoo专栏” 博客,请务必保留此出处http://billhoo.blog.51cto.com/2337751/761230 这段时间在做Android的基础开发,现在有一需求是 ...
Android 实现图片画画板
本文主要讲述了Android 实现图片画画板 设计项目布局: