闪屏页增加跳过按钮

This commit is contained in:
huangjian
2021-08-06 18:30:22 +08:00
parent b4bf0d093c
commit 91c399d95e
3 changed files with 43 additions and 58 deletions

View File

@@ -2,20 +2,15 @@ package com.yizhuan.erban.other.activity;
import android.annotation.SuppressLint;
import android.content.Intent;
import androidx.databinding.DataBindingUtil;
import androidx.fragment.app.FragmentTransaction;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.view.animation.AlphaAnimation;
import androidx.databinding.DataBindingUtil;
import com.alibaba.security.rp.RPSDK;
import com.bumptech.glide.request.RequestOptions;
import com.idlefish.flutterboost.FlutterBoost;
import com.idlefish.flutterboost.containers.FlutterBoostFragment;
import com.microquation.linkedme.android.LinkedME;
import com.mob.MobSDK;
import com.netease.mobsec.rjsb.watchman;
@@ -29,7 +24,6 @@ import com.yizhuan.erban.NimMiddleActivity;
import com.yizhuan.erban.R;
import com.yizhuan.erban.base.BaseActivity;
import com.yizhuan.erban.databinding.ActivitySplashBinding;
import com.yizhuan.erban.flutter.RouterConstants;
import com.yizhuan.erban.other.SplashBitmapTransformation;
import com.yizhuan.erban.other.dialog.PrivacyAgreementDialog;
import com.yizhuan.xchat_android_constants.XChatConstants;
@@ -50,6 +44,8 @@ public class SplashActivity extends BaseActivity implements View.OnClickListener
private ActivitySplashBinding mBinding;
private SplashComponent mLocalSplashVo;
private volatile boolean needJump = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -62,11 +58,7 @@ public class SplashActivity extends BaseActivity implements View.OnClickListener
}
mBinding = DataBindingUtil.setContentView(this, R.layout.activity_splash);
// initFlutter(); TODO: 闪屏初始化方案大概节省02秒的首页等待时间
mBinding.ivActivity.setOnClickListener(this);
mBinding.tvSkip.setOnClickListener(this);
mBinding.setClick(this);
if (savedInstanceState != null) {
// 从堆栈恢复不再重复解析之前的intent
setIntent(new Intent());
@@ -86,19 +78,6 @@ public class SplashActivity extends BaseActivity implements View.OnClickListener
checkPrivacyAgreement();
}
private void initFlutter() {
FlutterBoostFragment splash = new FlutterBoostFragment
.CachedEngineFragmentBuilder(FlutterBoostFragment.class, FlutterBoost.ENGINE_ID)
.url(RouterConstants.FLUTTER_PAGE_SPLASH)
.shouldAttachEngineToActivity(false)
.destroyEngineWithFragment(false)
.build();
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.add(R.id.fl_init_flutter, splash, null);
transaction.show(splash);
if (!isDestroyed()) transaction.commitNowAllowingStateLoss();
}
private void checkPrivacyAgreement() {
boolean isShowPrivacyAgreement = (boolean) SharedPreferenceUtils.get(SHOW_PRIVACY_AGREEMENT, true);
@@ -136,7 +115,6 @@ public class SplashActivity extends BaseActivity implements View.OnClickListener
}
private void showSplash() {
// 不过期的,并且已经下载出来图片的闪屏页数据
mLocalSplashVo = InitialModel.get().getLocalSplashVo();
@@ -148,6 +126,8 @@ public class SplashActivity extends BaseActivity implements View.OnClickListener
//添加图片处理机制
.apply(RequestOptions.bitmapTransform(new SplashBitmapTransformation()))
.into(mBinding.ivActivity);
mBinding.tvJump.setVisibility(View.VISIBLE);
mBinding.tvSkip.setVisibility(View.VISIBLE);
} else {
NimMiddleActivity.delayOpenCommunity = false;
MainActivity.start(SplashActivity.this);
@@ -155,27 +135,25 @@ public class SplashActivity extends BaseActivity implements View.OnClickListener
}
}
private volatile boolean needJump = false;
private void animation() {
mBinding.ivActivity.setAlpha(0.4F);
mBinding.ivActivity.animate().alpha(1).setDuration(1000).setStartDelay(0).start();
mBinding.ivActivity.animate().setDuration(COUNT_DOWN_TIME * 1000).withEndAction(() -> {
AlphaAnimation alphaAnimation = new AlphaAnimation(0,1);
alphaAnimation.setDuration(500);
mBinding.ivActivity.startAnimation(alphaAnimation);
mBinding.ivActivity.postDelayed(() -> {
if (needJump) {
return;
}
NimMiddleActivity.delayOpenCommunity = false;
MainActivity.start(SplashActivity.this);
finish();
}).start();
},COUNT_DOWN_TIME * 1000);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.iv_activity:
case R.id.tv_jump:
if (mLocalSplashVo == null) return;
String link = mLocalSplashVo.getLink();
int type = mLocalSplashVo.getType();
@@ -193,9 +171,9 @@ public class SplashActivity extends BaseActivity implements View.OnClickListener
return;
}
needJump = true;
NimMiddleActivity.delayOpenCommunity = false;
MainActivity.start(this);
finish();
break;
default:
break;

View File

@@ -1,15 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape>
<corners android:radius="@dimen/dp_6" />
<solid android:color="#99262626" />
</shape>
</item>
<item android:state_pressed="true">
<shape>
<corners android:radius="@dimen/dp_6" />
<solid android:color="#99262626" />
</shape>
</item>
</selector>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/black_transparent_40" />
<corners android:radius="100dp" />
</shape>

View File

@@ -3,6 +3,9 @@
<data>
<variable
name="click"
type="android.view.View.OnClickListener" />
</data>
<FrameLayout
@@ -22,19 +25,32 @@
android:scaleType="centerCrop" />
<TextView
android:visibility="gone"
android:id="@+id/tv_skip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_width="50dp"
android:layout_height="24dp"
android:layout_gravity="end"
android:layout_marginTop="70dp"
android:layout_marginEnd="@dimen/dp_12"
android:layout_marginTop="50dp"
android:layout_marginEnd="20dp"
android:background="@drawable/selector_bg_splash_skip"
android:gravity="center"
android:paddingTop="@dimen/dp_8"
android:paddingBottom="@dimen/dp_8"
android:minWidth="80dp"
android:onClick="@{click}"
android:text="@string/text_skip"
android:textColor="@color/white" />
android:textColor="@color/white"
android:textSize="13dp"
android:visibility="visible" />
<TextView
android:id="@+id/tv_jump"
android:layout_width="250dp"
android:layout_height="45dp"
android:layout_gravity="center_horizontal|bottom"
android:layout_marginBottom="50dp"
android:background="@drawable/bg_common_confirm"
android:gravity="center"
android:onClick="@{click}"
android:text="点击进入更多精彩"
android:textColor="@color/white"
android:textSize="18dp"
android:visibility="visible" />
</FrameLayout>
</layout>