package com.werb.gankwithzhihu.ui.activity; import android.content.Intent; import android.content.res.AssetManager; import android.graphics.Typeface; import android.os.Handler; import android.util.Log; import android.widget.TextView; import com.werb.gankwithzhihu.BuildConfig; import com.werb.gankwithzhihu.R; import com.werb.gankwithzhihu.ui.base.BasePresenter; import com.werb.gankwithzhihu.ui.base.MVPBaseActivity; import com.werb.gankwithzhihu.widget.SplashView; import java.util.Random; import butterknife.Bind; /** * Created by Werb on 2016/8/18. * Werb is Wanbo. * Contact Me : werbhelius@gmail.com * Splash like twitter */ public class SplashActivity extends MVPBaseActivity { private static final String TAG = "SplashActivity"; private Handler mHandler = new Handler(); @Bind(R.id.splash_view) SplashView splash_view; @Bind(R.id.tv_splash_info) TextView tv_splash_info; @Override protected BasePresenter createPresenter() { return null; } @Override protected int provideContentViewId() { return R.layout.activity_splash; } @Override protected void onStart() { super.onStart(); AssetManager mgr=getAssets();//得到AssetManager Typeface tf=Typeface.createFromAsset(mgr, "fonts/rm_albion.ttf");//根据路径得到Typeface tv_splash_info.setTypeface(tf);//设置字体 startLoadingData(); } /** * start splash animation */ private void startLoadingData(){ // finish "loading data" in a random time between 1 and 3 seconds Random random = new Random(); mHandler.postDelayed(this::onLoadingDataEnded, 1000 + random.nextInt(2000)); } private void onLoadingDataEnded(){ // start the splash animation splash_view.splashAndDisappear(new SplashView.ISplashListener(){ @Override public void onStart(){ // log the animation start event if(BuildConfig.DEBUG){ Log.d(TAG, "splash started"); } } @Override public void onUpdate(float completionFraction){ // log animation update events if(BuildConfig.DEBUG){ Log.d(TAG, "splash at " + String.format("%.2f", (completionFraction * 100)) + "%"); } } @Override public void onEnd(){ // log the animation end event if(BuildConfig.DEBUG){ Log.d(TAG, "splash ended"); } // free the view so that it turns into garbage splash_view = null; goToMain(); } }); } public void goToMain() { startActivity(new Intent(SplashActivity.this, MainActivity.class)); finish(); } @Override public void startActivity(Intent intent) { super.startActivity(intent); overridePendingTransition(android.R.anim.fade_in,0); } }