闪屏页工具类
来源:互联网 发布:手机虚拟专用网络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
- 闪屏页工具类
- 工具类
- 工具类!!!!
- 工具类
- 工具类
- 工具类
- 工具类
- 工具类
- 工具类
- 工具类
- 工具类
- 工具类
- 工具类
- 工具类
- 工具类
- 工具类
- 工具类
- 工具类
- 第3章 基本概念(5)语句:if语句 do-while语句 while语句 for语句 for-in语句......
- ubuntu使用gtest单元测试框架
- 使用Base64解码的吐血经历
- 在dragonboard 410c上使用mplayer播放视频
- spark2.1源码分析1:Win10下IDEA源码阅读环境的搭建
- 闪屏页工具类
- [caffe]linux下安装caffe(无cuda)以及python接口
- Vue.js学习系列一 —— vue-router2学习实践笔记(附DEMO)
- oracle数据恢复小技巧
- Jedis分片连接池(分布式)
- WinDbg使用基础
- 同步IO 异步IO
- 自定义标签学习
- DNS的工作原理及解析