android 第三方打开网络图片,Android WelcomeActivity 启动画更换网络图片

1、运行效果

第一张是本地的启动图,第二张是网络启动图

b70162601acb7c871823ddcbebb8e419.png     

2cafe418b119d193e8d391b2b791377d.png

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总结&lbrack;转&rsqb;

方法一: 很多应用都会有一个启动界面.欢迎画面慢慢隐现,然后慢慢消隐.实现这种效果的方法有两种(暂时只发现两种)1.使用两个Activity,程序启动时候load第一张Activity,然后由tick ...

android开发之画图版

android开发之画图版 一.新的开始,也是新的挑战: 开始学习java,除了刚开始的时候有些难,觉得难有些晕,慢慢接触之后也就挺好的了, 学习了4天的安卓开发,完成了一个小程序,收获还是不小的:有 ...

&lbrack;FMX&rsqb; Android APP 启动黑屏优化补丁

使用说明 *************************************************** Android APP 启动黑屏优化补丁 作者: Swish, YangYxd 201 ...

Android App 启动页&lpar;Splash&rpar;黑&sol;白闪屏现象产生原因与解决办法(转)

转载: Android App 启动页(Splash)黑/白闪屏现象产生原因与解决办法   首先感谢博主分享,本文作为学习记录 惊鸿一瞥 微信的启动页,相信大家都不陌生. 不知道大家有没有发现一个现象 ...

Delphi开发 Android 程序启动画面简单完美解决方案

原文在这里 还是这个方法好用,简单!加上牧马人做的自动生成工具,更是简单. 以下为原文,向波哥敬礼! 前面和音儿一起研究 Android 下启动画面的问题,虽然问题得到了解决,但是,总是感觉太麻烦,主 ...

设置Android Studio启动时可选最近打开过的工程

Android Studio启动时,默认会打开最近关闭的工程. 如果想Android Studio在启动时,打开欢迎界面(Welcome to Android Studio界面),则可以通过设置Set ...

Android自定义View 画弧形&comma;文字&comma;并增加动画效果

一个简单的Android自定义View的demo,画弧形,文字,开启一个多线程更新ui界面,在子线程更新ui是不允许的,但是View提供了方法,让我们来了解下吧. 1.封装一个抽象的View类   B ...

Android开机启动Activity或者Service方法

本文出自 “Bill_Hoo专栏” 博客,请务必保留此出处http://billhoo.blog.51cto.com/2337751/761230 这段时间在做Android的基础开发,现在有一需求是 ...

Android 实现图片画画板

本文主要讲述了Android 实现图片画画板 设计项目布局:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值