Android启动界面渐变及数据初始化处理
来源:互联网 发布:凡人网络购物系统 编辑:程序博客网 时间:2024/06/05 10:39
package com.sinomaps.bjmapvr.ui;import android.content.Intent;import android.content.SharedPreferences;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.preference.PreferenceManager;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.view.animation.AlphaAnimation;import android.view.animation.Animation;import android.widget.TextView;import android.widget.Toast;import com.lyt.baselib.utility.Utility;import com.sinomaps.bjmapvr.R;import com.sinomaps.bjmapvr.utility.MyUtility;import java.lang.ref.WeakReference;public class SplashActivity extends AppCompatActivity { public static final int MAX_WAITING_TIME = 2000; private boolean bAnimationEnd = false; private boolean bCheckDataIsOK = false; private MyHandler handler = new MyHandler(this); static class MyHandler extends Handler{ WeakReference<SplashActivity> mActivity; TextView mTextViewInfo; MyHandler(SplashActivity activity){ mActivity = new WeakReference<>(activity); } @Override public void handleMessage(Message msg) { super.handleMessage(msg); SplashActivity splashActivity = mActivity.get(); if(splashActivity == null) return; mTextViewInfo = (TextView)mActivity.get().findViewById(R.id.textview_info); switch(msg.what){ case 0: mTextViewInfo.setText(msg.getData().getString("msg")); break; case -1://出现错误 mTextViewInfo.setText(msg.getData().getString("msg")); Toast.makeText(splashActivity, msg.getData().getString("msg"), Toast.LENGTH_SHORT).show(); break; } } } private void sendMsg(String info,int what){ Message msg = handler.obtainMessage(); Bundle data = new Bundle(); data.putString("msg", info); msg.setData(data); msg.what = what; handler.sendMessage(msg); } private void sendInfo(String info){ sendMsg(info, 0); } private void sendError(String info){ sendMsg(info, -1); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); View view = View.inflate(this, R.layout.activity_splash, null); setContentView(view); // 渐变展示启动屏 AlphaAnimation aa = new AlphaAnimation(0.3f, 1.0f); aa.setDuration(MAX_WAITING_TIME); aa.setAnimationListener(new Animation.AnimationListener() { @Override public void onAnimationStart(Animation animation) { } @Override public void onAnimationRepeat(Animation animation) { } @Override public void onAnimationEnd(Animation animation) { bAnimationEnd = true; redirectTo(); } }); view.startAnimation(aa); //检查软件配套数据是否最新 new Thread(){ @Override public void run(){ checkData(); } }.start(); } private void checkData() { try { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); String oldVersion = prefs.getString("DataVersion", "0000-00-00"); String newVersion = getResources().getString(R.string.data_version); if (oldVersion.compareTo(newVersion) < 0) { sendInfo("正在初始化数据,请稍候..."); Utility.unzipAssetsDataToDisk(this, getString(R.string.data_name), MyUtility.getProjectBathPath(this)); sendInfo("数据初始化完毕。"); SharedPreferences.Editor editor = prefs.edit(); editor.putString("DataVersion", newVersion); editor.apply(); } } catch (Exception e) { e.printStackTrace(); sendError("初始化数据出错"); return; } bCheckDataIsOK = true; redirectTo(); } private void redirectTo(){ //当动画和数据检查同时执行完后才跳转 if(bAnimationEnd && bCheckDataIsOK){ Intent intent = new Intent(this, MainActivity.class); startActivity(intent); finish(); } }}
0 0
- Android启动界面渐变及数据初始化处理
- Android开发——实现渐变启动界面
- Android开发_app启动界面背景渐变效果
- 用动画实现android app启动界面的渐变效果
- android loading界面 及 处理
- android loading界面 及 处理
- Android启动过程及FrameWork初始化
- android 图片渐变处理
- android 程序初始化界面..
- android 程序初始化界面.. .
- springboot 启动初始化数据
- ucos初始化及启动
- 渐变启动欢迎界面——(开发第二日)
- android启动时应用程序渐变效果
- android启动时应用程序渐变效果
- android(3) 启动动画的渐变
- android启动渐变效果,左至右消失
- 定制android启动界面
- 1.iOS基础控件
- VC++改变窗口背景颜色和使得Static控件背景透明
- linux上设置mysql等服务开机启动
- [从头学数学] 第148节 一元二次方程
- Android最佳性能实践(四)——布局优化技巧
- Android启动界面渐变及数据初始化处理
- retain/assign/strong/weak/copy/mutablecopy/autorelease区别
- 礼拜三log~关于c:test标签 & js鼠标变身! & java字符串相关函数
- Java CopyOnWriteArrayList 分析
- 顺序表操作详解
- android 使用Volley获取json数据
- C#中的多线程 - 基础知识
- 毕业五年,这些让你们的差距越来越大
- 2. 基础控件2