1、运行效果
第一张是本地的启动图,第二张是网络启动图
2、用到的第三方jar包 Android-Universal-Image-Loader-master
不熟的请看 Android-Universal-Image-Loader 框架使用
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、所需要的权限
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
5、项目下载地址
http://download.csdn.net/detail/yanzi2015/8890461