Java 如何在结束前单击停止启动屏幕?
我在我的应用程序中创建了一个活动splashScreen 这对动画非常有效,这是我的代码:Java 如何在结束前单击停止启动屏幕?,java,android,splash-screen,Java,Android,Splash Screen,我在我的应用程序中创建了一个活动splashScreen 这对动画非常有效,这是我的代码: public class SpalshScreenActivity extends Activity { private static final int STOPSPLASH = 0; private static final long SPLASHTIME = 3000; private boolean flagBack = false; private final transient Ha
public class SpalshScreenActivity extends Activity {
private static final int STOPSPLASH = 0;
private static final long SPLASHTIME = 3000;
private boolean flagBack = false;
private final transient Handler splashHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
if (msg.what == STOPSPLASH && !flagBack) {
StartMainActivity();
}
super.handleMessage(msg);
}
};
public void onAttachedToWindow() {
super.onAttachedToWindow();
Window window = getWindow();
window.setFormat(PixelFormat.RGBA_8888);
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setTheme(R.style.HideActionBar);
setContentView(R.layout.splash);
StartAnimations();
final Message msg = new Message();
msg.what = STOPSPLASH;
splashHandler.sendMessageDelayed(msg, SPLASHTIME);
}
private void StartAnimations() {
Animation anim = AnimationUtils.loadAnimation(this, R.anim.alpha);
anim.reset();
LinearLayout l=(LinearLayout) findViewById(R.id.lin_lay);
l.clearAnimation();
l.startAnimation(anim);
anim = AnimationUtils.loadAnimation(this, R.anim.translate);
anim.reset();
ImageView iv = (ImageView) findViewById(R.id.logo);
iv.clearAnimation();
iv.startAnimation(anim);
}
private void StartMainActivity() {
final Intent intent = new Intent(SpalshScreenActivity.this, MainFragmentActivity.class);
startActivity(intent);
finish();
}
public boolean onKeyDown(int keyCode, KeyEvent evt) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
flagBack = true;
finish();
return true;
}
return false;
}}
现在我想添加一个功能,点击屏幕来停止飞溅屏幕
我尝试过这种方法,但我认为它不是最佳解决方案(缓慢):
提前谢谢你 使用与onTouchEvent中相同的代码为活动设置OnClickListener只需为imageview设置OnClickListener,并在该调用中设置任何调用即可结束splashscreen。提示:Android设计指南建议不要使用splashscreen。感谢您在EGHDK上提供此信息。你知道为什么吗?@lopez.mikhael它写在“将帮助设计到你的应用程序”部分下面。基本上,对于用户来说,得到一个SplashScreen是很烦人的/或者是没用的。通常,用户能够通过自己的方式发现应用程序的功能。但这些只是建议。设计指南只是“指南”,但是的,我建议只向用户显示一次启动屏幕,但每次用户打开应用程序时,他们都会喜欢它的加载速度。不要仅仅因为你可以使用闪屏,就使用闪屏来做一些有意义的事情。
@Override
public boolean onTouchEvent(MotionEvent evt) {
if(evt.getAction() == MotionEvent.ACTION_DOWN) {
flagBack = true;
StartMainActivity();
}
return true;
}