当前位置: 代码迷 >> Android >> Android WelcomeActivity 承动画更换网络图片
  详细解决方案

Android WelcomeActivity 承动画更换网络图片

热度:57   发布时间:2016-04-28 00:06:46.0
Android WelcomeActivity 启动画更换网络图片

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

 

  相关解决方案