封装类

来源:互联网 发布:淘宝打包能学到什么 编辑:程序博客网 时间:2024/05/19 14:02
package com.example.asus.jingdong.util;import android.app.AlertDialog;import android.content.Context;import android.content.DialogInterface;import android.content.Intent;import android.content.SharedPreferences;import android.graphics.Bitmap;import android.net.ConnectivityManager;import android.net.NetworkInfo;import android.os.AsyncTask;import com.example.asus.jingdong.R;import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiscCache;import com.nostra13.universalimageloader.cache.memory.impl.LruMemoryCache;import com.nostra13.universalimageloader.core.DisplayImageOptions;import com.nostra13.universalimageloader.core.ImageLoader;import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;import com.nostra13.universalimageloader.core.assist.ImageScaleType;import com.nostra13.universalimageloader.core.assist.QueueProcessingType;import com.nostra13.universalimageloader.core.display.RoundedBitmapDisplayer;import com.nostra13.universalimageloader.core.display.SimpleBitmapDisplayer;import com.nostra13.universalimageloader.utils.StorageUtils;import java.io.BufferedReader;import java.io.File;import java.io.InputStream;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.URL;/** * Created by asus on 2017/12/5. */public class WangLuoUtil {    private static SharedPreferences sp;    private static String name = "config";   //根据条件进行修改    private static SharedPreferences.Editor edit;    /**     * 网上获取数据的方法     * @param path   URL网址     * @param shuju   接口回调     */    public static void getData(final String path, final ShuJu shuju){        AsyncTask<Void, Void, String> asyncTask = new AsyncTask<Void, Void, String>() {            @Override            protected String doInBackground(Void... voids) {                try {                    URL url = new URL(path);                    HttpURLConnection connection = (HttpURLConnection) url.openConnection();                    //设置                    connection.setRequestMethod("GET");                    connection.setReadTimeout(5000);                    connection.setConnectTimeout(5000);                    //获取                    int responseCode = connection.getResponseCode();                    if (responseCode == 200){                        InputStream inputStream = connection.getInputStream();                        String json = streamToString(inputStream, "utf-8");                        //返回                        return json;                    }                } catch (Exception e) {                    e.printStackTrace();                }                return null;            }            @Override            protected void onPostExecute(String s) {                shuju.zhi(s);            }        };        //执行        asyncTask.execute();    }    // 存放boolean    public static void putBoolean(Context ctx, String k, boolean v) {        if (sp == null) {            sp = ctx.getSharedPreferences(name, ctx.MODE_PRIVATE);        }        if (edit == null) {            edit = sp.edit();        }        edit.putBoolean(k, v);        edit.commit();    }    //     public static boolean getBoolean(Context ctx, String k) {        if (sp == null) {            sp = ctx.getSharedPreferences(name, ctx.MODE_PRIVATE);        }        return sp.getBoolean(k, false);    }    // 存放boolean    public static void putString(Context ctx, String k, String v) {        if (sp == null) {            sp = ctx.getSharedPreferences(name, ctx.MODE_PRIVATE);        }        if (edit == null) {            edit = sp.edit();        }        edit.putString(k, v);        edit.commit();    }    //     public static String getString(Context ctx, String k) {        if (sp == null) {            sp = ctx.getSharedPreferences(name, ctx.MODE_PRIVATE);        }        return sp.getString(k, "");    }    /**     * 字节流转换为字符流的方法     * @param inputStream   要转换的字节流     * @param charset   编码格式     * @return     */    private static String streamToString(InputStream inputStream,String charset) {        try {            InputStreamReader inputStreamReader = new InputStreamReader(inputStream,charset);            BufferedReader bufferedReader = new BufferedReader(inputStreamReader);            String s = null;            StringBuilder builder = new StringBuilder();            while ((s = bufferedReader.readLine()) != null){                builder.append(s);            }            bufferedReader.close();            return builder.toString();        } catch (Exception e) {            e.printStackTrace();        }        return  null;    }    /**     * 图片异步加载的方法 --> ImageLoader     *    需要设置依赖   nostra     * @param context   上下文     */    public static void init(Context context){        File cacheDir = StorageUtils.getCacheDirectory(context);  //指定默认的硬盘(sd)的缓存文件夹路径        //1.创建一个ImageLoaderConfiguration,,,图片加载器的配置对象        ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context)                .threadPoolSize(3) // default  线程池内加载的数量                .threadPriority(Thread.NORM_PRIORITY - 2) // default 设置当前线程的优先级                .tasksProcessingOrder(QueueProcessingType.FIFO) // default                .denyCacheImageMultipleSizesInMemory()                //1 TB = 1024GB 1G=1024MB 1M = 1024KB 1KB = 1024BYTE                //LruMemoryCache,,lru最近最少使用算法...内部维护的是LinkedHashMap,,当一张图片最近很少使用的时候会从mao集合里面移除                .memoryCache(new LruMemoryCache(2 * 1024 * 1024)) //指定内存缓存的大小,,2M,,可以通过自己的内存缓存实现                .memoryCacheSize(2 * 1024 * 1024)  // 内存缓存的最大值                .memoryCacheSizePercentage(13) // default                //指定硬盘/磁盘缓存的路径                .diskCache(new UnlimitedDiscCache(cacheDir)) // default 可以自定义缓存路径                .diskCacheSize(50 * 1024 * 1024) // 50 Mb sd(本地)缓存的最大值                .diskCacheFileCount(100)  // 可以缓存的文件数量                .defaultDisplayImageOptions(DisplayImageOptions.createSimple()) // default                .writeDebugLogs() // 打印debug log                .build(); //开始构建        //2.对上面配置对象的初始化        ImageLoader.getInstance().init(config);    }    /**     * 适配器获得图片的方法     * @return     */    public static DisplayImageOptions getTuXing(){        DisplayImageOptions options = new DisplayImageOptions.Builder()                .showImageOnLoading(R.mipmap.ic_launcher) // 设置图片下载期间显示的图片                .showImageForEmptyUri(R.mipmap.ic_launcher) // 设置图片Uri为空或是错误的时候显示的图片                .showImageOnFail(R.mipmap.ic_launcher) // 设置图片加载或解码过程中发生错误显示的图片                .resetViewBeforeLoading(true)  // default 设置图片在加载前是否重置、复位                .cacheInMemory(true) // default  设置下载的图片是否缓存在内存中                .cacheOnDisk(true) // default  设置下载的图片是否缓存在SD卡中                .considerExifParams(true) // default                .imageScaleType(ImageScaleType.EXACTLY_STRETCHED) // default 设置图片以如何的编码方式显示                .bitmapConfig(Bitmap.Config.RGB_565) // default 设置图片的解码类型                .displayer(new SimpleBitmapDisplayer()) // default  还可以设置圆角图片new RoundedBitmapDisplayer(20),,圆形 new CircleBitmapDisplayer()                .build();        return options;    }    public static DisplayImageOptions getYuan(){        DisplayImageOptions options = new DisplayImageOptions.Builder()                .showImageOnLoading(R.mipmap.ic_launcher) // 设置图片下载期间显示的图片                .showImageForEmptyUri(R.mipmap.ic_launcher) // 设置图片Uri为空或是错误的时候显示的图片                .showImageOnFail(R.mipmap.ic_launcher) // 设置图片加载或解码过程中发生错误显示的图片                .resetViewBeforeLoading(true)  // default 设置图片在加载前是否重置、复位                .cacheInMemory(true) // default  设置下载的图片是否缓存在内存中                .cacheOnDisk(true) // default  设置下载的图片是否缓存在SD卡中                .considerExifParams(true) // default                .imageScaleType(ImageScaleType.EXACTLY_STRETCHED) // default 设置图片以如何的编码方式显示                .bitmapConfig(Bitmap.Config.RGB_565) // default 设置图片的解码类型                .displayer(new RoundedBitmapDisplayer(90)) // default  还可以设置圆角图片new RoundedBitmapDisplayer(20),,圆形 new CircleBitmapDisplayer()                .build();        return options;    }    /**     * 判断网络连接是否已开     * true 已打开  false 未打开     */    public static boolean isConn(Context context){        boolean bisConnFlag=false;        ConnectivityManager conManager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);        NetworkInfo network = conManager.getActiveNetworkInfo();        if(network!=null){            bisConnFlag=conManager.getActiveNetworkInfo().isAvailable();        }        return bisConnFlag;    }    /**     * 当判断当前手机没有网络时选择是否打开网络设置     * @param context     */    public static void showNoNetWorkDlg(final Context context) {        AlertDialog.Builder builder = new AlertDialog.Builder(context);        builder.setIcon(R.mipmap.ic_launcher)         //                .setTitle(R.string.app_name)            //                .setMessage("当前无网络").setPositiveButton("设置", new DialogInterface.OnClickListener() {            @Override            public void onClick(DialogInterface dialog, int which) {                // 跳转到系统的网络设置界面                Intent intent = null;                // 先判断当前系统版本                if(android.os.Build.VERSION.SDK_INT > 10){  // 3.0以上                    intent = new Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS);                }else{                    intent = new Intent();                    intent.setClassName("com.android.settings", "com.android.settings.WirelessSettings");                }                context.startActivity(intent);            }        }).setNegativeButton("知道了", null).show();    }}