ImageLoader和wifi网络的判断

来源:互联网 发布:linux如何配置ntp 编辑:程序博客网 时间:2024/05/20 10:53

创建一个类继承Application

package com.wzq.imageloaderdemo1;

import android.app.Application;
import android.util.Log;

import com.nostra13.universalimageloader.cache.memory.impl.UsingFreqLimitedMemoryCache;
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 com.nostra13.universalimageloader.core.download.BaseImageDownloader;

/**
* 这个是系统全局的Application, 它就是系统生命周期最长的上下文;
* 系统已启动,并不是直接进入MainActivity;而是先进入Application;
* 重写他的目的是,初始化系统全局的一些参数;比如imageLoader的全局配置;
* Application的生命周期和app的生命周期一样,
*/

public class App extends Application {**//在Mani.xml <application中配置 android:name=".App"    导入依赖或jar包**//这些配置都可以省略@Overridepublic void onCreate() {    super.onCreate();    Log.e("MyApplication", "我走了application");    ImageLoaderConfiguration config = new ImageLoaderConfiguration            .Builder(this)            .memoryCacheExtraOptions(480, 800) // max width, max height,即保存的每个缓存文件的最大长宽            .threadPoolSize(5)//线程池内加载的数量            .threadPriority(Thread.NORM_PRIORITY - 2)            .denyCacheImageMultipleSizesInMemory()            .memoryCache(new UsingFreqLimitedMemoryCache(2 * 1024 * 1024)) // You can pass your own memory cache implementation/你可以通过自己的内存缓存实现            .memoryCacheSize(2 * 1024 * 1024)            .tasksProcessingOrder(QueueProcessingType.LIFO)            .defaultDisplayImageOptions(DisplayImageOptions.createSimple())            .imageDownloader(new BaseImageDownloader(this, 5 * 1000, 30 * 1000)) // connectTimeout (5 s), readTimeout (30 s)超时时间            .writeDebugLogs() // Remove for release app            .build();//开始构建//上面的.build()方法和这两行代码必须要写//初始化imageloader;    ImageLoader.getInstance().init(config);    //初始化 代码统计;    }}

加权限

<uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

主界面

package com.wzq.imageloaderdemo1;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.ImageView;

import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;

public class MainActivity extends AppCompatActivity {String[] images = {        "http://img.my.csdn.net/uploads/201407/26/1406383264_8243.jpg",        "http://img.my.csdn.net/uploads/201407/26/1406383248_3693.jpg",        "http://img.my.csdn.net/uploads/201407/26/1406383243_5120.jpg",        "http://img.my.csdn.net/uploads/201407/26/1406383242_3127.jpg",        "http://img.my.csdn.net/uploads/201407/26/1406383242_9576.jpg",        "http://img.my.csdn.net/uploads/201407/26/1406383242_1721.jpg",        "http://img.my.csdn.net/uploads/201407/26/1406383219_5806.jpg",        "http://img.my.csdn.net/uploads/201407/26/1406383214_7794.jpg",        "http://img.my.csdn.net/uploads/201407/26/1406383213_4418.jpg",        "http://img.my.csdn.net/uploads/201407/26/1406383213_3557.jpg",        "http://img.my.csdn.net/uploads/201407/26/1406383210_8779.jpg",        "http://img.my.csdn.net/uploads/201407/26/1406383172_4577.jpg",        "http://img.my.csdn.net/uploads/201407/26/1406383166_3407.jpg",        "http://img.my.csdn.net/uploads/201407/26/1406383166_2224.jpg"};@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    ImageView imageView = (ImageView) findViewById(R.id.imageView);    //得到imageLoader的实例;    ImageLoader imageLoader = ImageLoader.getInstance();    //这三个方法必须写    DisplayImageOptions displayImageOptions = new DisplayImageOptions.Builder()            .showImageOnLoading(R.mipmap.ic_launcher) //设置图片在下载期间显示的图片            .showImageForEmptyUri(R.mipmap.ic_launcher)//设置图片Uri为空或是错误的时候显示的图片            .showImageOnFail(R.mipmap.ic_launcher)  //设置图片加载/解码过程中错误时候显示的图片            .build();    imageLoader.displayImage(images[2], imageView);    }}

布局

<?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context="com.wzq.imageloaderdemo1.MainActivity"><TextView    android:id="@+id/textView"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:text="Hello World!"    app:layout_constraintBottom_toBottomOf="parent"    app:layout_constraintLeft_toLeftOf="parent"    app:layout_constraintRight_toRightOf="parent"    app:layout_constraintTop_toTopOf="parent" /><ImageView    android:id="@+id/imageView"    android:layout_width="199dp"    android:layout_height="149dp"    android:layout_marginBottom="8dp"    android:layout_marginLeft="8dp"    android:layout_marginRight="8dp"    android:layout_marginTop="8dp"    app:layout_constraintBottom_toTopOf="@+id/textView"    app:layout_constraintLeft_toLeftOf="parent"    app:layout_constraintRight_toRightOf="parent"    app:layout_constraintTop_toTopOf="parent"    app:srcCompat="@mipmap/ic_launcher"    tools:layout_editor_absoluteX="17dp"    tools:layout_editor_absoluteY="-1dp" /></android.support.constraint.ConstraintLayout>

wifi网络的判断

加权限

<uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

package com.wzq.wifidemo;

import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;

public class Utils {/** * 返回值 -1:没有网络  1:WIFI网络   3:net网络 */public static int getNetype(Context context) {    int netType = -1;    ConnectivityManager connMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);    NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();    if (networkInfo == null) {        return netType;    }    int nType = networkInfo.getType();    if (nType == ConnectivityManager.TYPE_MOBILE) {        netType = 2;    } else if (nType == ConnectivityManager.TYPE_WIFI) {        netType = 1;    }    return netType;    }}

主界面
package com.wzq.wifidemo;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;

public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    Log.e("TAG", "netType: "+  Utils.getNetype(this));    }}
原创粉丝点击