闪屏页工具类

来源:互联网 发布:手机虚拟专用网络vpn 编辑:程序博客网 时间:2024/06/06 00:10
import android.content.Context;import android.content.Intent;import android.content.SharedPreferences;import android.graphics.Bitmap;import android.net.ConnectivityManager;import android.net.NetworkInfo;import android.os.Message;import android.support.v4.app.FragmentActivity;import android.os.Bundle;import android.view.View;import android.view.WindowManager;import android.view.animation.Animation;import android.view.animation.ScaleAnimation;import android.widget.ImageView;import android.widget.Toast;import com.android.volley.AuthFailureError;import com.android.volley.RequestQueue;import com.android.volley.Response;import com.android.volley.VolleyError;import com.android.volley.toolbox.ImageLoader;import com.android.volley.toolbox.StringRequest;import com.android.volley.toolbox.Volley;import com.google.gson.Gson;import com.google.gson.reflect.TypeToken;import com.yyekt.appliaciton.App;import com.yyekt.bean.HomeItem;import com.yyekt.utils.MyLog;import com.yyekt.utils.VolleyUtils;import org.json.JSONArray;import org.json.JSONException;import org.json.JSONObject;import java.util.HashMap;import java.util.List;import java.util.Map;/** * 启动扉页 */public class SplashActivity extends FragmentActivity implements Runnable {    private RequestQueue mRequestQueue;    private ImageLoader loader;    private ImageView imageView_splash_activity;    private android.os.Handler handler = new android.os.Handler() {        @Override        public void handleMessage(Message msg) {            super.handleMessage(msg);            if (msg != null) {                if (msg.what == 88) {                    Intent intent = new Intent();                    //TODO 如果没有显示欢迎页 ,那么显示启动欢迎页,否则直接启动首页                    SharedPreferences sp =                            getSharedPreferences(Constants.SP_NAME, MODE_PRIVATE);                    //利用SP 保存字段,判断是否显示欢迎页,保存数值一定要是程序版本号                    //利用当前程序版本号,和sp中的版本号进行比较,从而判断,这样更精确,兼容性好                    int wsv = sp.getInt(Constants.SP_KEY_WELCOME_SHOW_VER, -1);                    if (BuildConfig.VERSION_CODE != wsv) {                        //TODO 显示欢迎页                        intent.setClass(SplashActivity.this, WelcomeActivity.class);                    } else {                        //TODO 显示主界面                        intent.setClass(SplashActivity.this, MainActivity.class);                    }                    startActivity(intent);                    finish();                }            }        }    };    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.splash_activity);        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,                WindowManager.LayoutParams.FLAG_FULLSCREEN);//设置全屏        loader = VolleyUtils.getLoader(this);        mRequestQueue = Volley.newRequestQueue(this);        imageView_splash_activity = (ImageView) findViewById(R.id.imageView_splash_activity);        downOpenAnimationData();//        Message message = Message.obtain();//        message.what = 88;//        handler.sendMessageDelayed(message, 2000);//        Thread thread=new Thread(this);//        thread.start();    }    //获取开场动画数据    private void downOpenAnimationData() {        String url = Constants.USING_LIBRARY + Constants.GETHOME + "?homeVersion=0";        StringRequest stringRequest = new StringRequest(StringRequest.Method.POST,                url,                new Response.Listener<String>() {                    @Override                    public void onResponse(String s) {                        handleOpenAnimationList(s);                    }                }, new Response.ErrorListener() {            @Override            public void onErrorResponse(VolleyError volleyError) {                Toast.makeText(SplashActivity.this, "网络错误", Toast.LENGTH_SHORT).show();            }        });        if (isNetworkAvailable(this)) {            mRequestQueue.add(stringRequest);        } else {            getFromDiskCache(url);        }    }    //判断网络是否可用    public static boolean isNetworkAvailable(Context context) {        try {            ConnectivityManager manger = (ConnectivityManager) context                    .getSystemService(Context.CONNECTIVITY_SERVICE);            NetworkInfo info = manger.getActiveNetworkInfo();            //return (info!=null && info.isConnected());            if (info != null) {                return info.isConnected();            } else {                return false;            }        } catch (Exception e) {            return false;        }    }    //从磁盘读取缓存数据    private void getFromDiskCache(String url) {        if (mRequestQueue.getCache().get(url) != null) {            String s = new String((mRequestQueue.getCache().get(url).data));            handleOpenAnimationList(s);        }else{            imageView_splash_activity.setImageResource(R.mipmap.welcome);            setAnimation();        }    }    //处理开场动画返回数据    private void handleOpenAnimationList(String s) {        try {            JSONObject jsonObject = new JSONObject(s);            boolean success = jsonObject.getBoolean("success");            if (success) {                JSONObject jsonResult = jsonObject.getJSONObject("result");                JSONArray bannerArray = jsonResult.getJSONArray("openAnimationList");                TypeToken<List<HomeItem>> token = new TypeToken<List<HomeItem>>() {                };                Gson gson = new Gson();                List<HomeItem> list = gson.fromJson(bannerArray.toString(), token.getType());                viewShowImage(list.get(0).getImgUrl());            }        } catch (JSONException e) {            e.printStackTrace();        }    }    //为imageview显示图片    private void viewShowImage(String url){        loader.get(url, new ImageLoader.ImageListener() {            @Override            public void onResponse(ImageLoader.ImageContainer imageContainer, boolean b) {                Bitmap bitmap = imageContainer.getBitmap();                imageView_splash_activity.setImageBitmap(bitmap);                if (bitmap != null && bitmap.isRecycled()) {                    bitmap.recycle();                }                bitmap = null;                setAnimation();            }            @Override            public void onErrorResponse(VolleyError volleyError) {                MyLog.e("kkk", "NewHomeFragment--viewShowImage--onErrorResponse");            }        });    }    //为imageview背景设置动画    private void setAnimation(){        final ScaleAnimation animation = new ScaleAnimation(1.0f, 1.1f, 1.0f, 1.1f,                Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF,                0.8f);        animation.setDuration(2000);//设置动画持续时间        animation.setFillAfter(true);//动画执行完后是否停留在执行完的状态        imageView_splash_activity.setAnimation(animation);        animation.startNow();        animation.setAnimationListener(new Animation.AnimationListener() {            @Override            public void onAnimationStart(Animation animation) {            }            @Override            public void onAnimationEnd(Animation animation) {                Message message = Message.obtain();                message.what = 88;                handler.sendMessage(message);            }            @Override            public void onAnimationRepeat(Animation animation) {            }        });    }    @Override    public void run() {        try {            Thread.sleep(2000)            ;        } catch (InterruptedException e) {            e.printStackTrace();        }        Intent intent = new Intent();        //TODO 如果没有显示欢迎页 ,那么显示启动欢迎页,否则直接启动首页        SharedPreferences sp =                getSharedPreferences(Constants.SP_NAME, MODE_PRIVATE);        //利用SP 保存字段,判断是否显示欢迎页,保存数值一定要是程序版本号        //利用当前程序版本号,和sp中的版本号进行比较,从而判断,这样更精确,兼容性好        int wsv = sp.getInt(Constants.SP_KEY_WELCOME_SHOW_VER, -1);        if (BuildConfig.VERSION_CODE != wsv) {            //TODO 显示欢迎页            intent.setClass(this, WelcomeActivity.class);        } else {            //TODO 显示主界面            intent.setClass(this, MainActivity.class);        }        startActivity(intent);        finish();    }    @Override    protected void onDestroy() {        super.onDestroy();    }}

1 0
原创粉丝点击