这是我的代码:
AlphaAnimation anim_fadeIn;
Button button, button2;
TextView t, e;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
t = findViewById(R.id.text_Splash_t);
e = findViewById(R.id.text_Splash_e);
button = findViewById(R.id.button);
button2 = findViewById(R.id.button2);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new Thread(new Runnable() {
@Override
public void run() {
mAnimate();
}
}).start();
}
});
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new Thread(new Runnable() {
@Override
public void run() {
mAnimate2();
}
}).start();
}
});
anim_fadeIn = new AlphaAnimation(0.0f, 1.0f);
anim_fadeIn.setDuration(1000);
anim_fadeIn.setFillAfter(true);
private void mAnimate() {
runOnUiThread(new Runnable() {
@Override
public void run() {
t.startAnimation(anim_fadeIn);
}
});
}
private void mAnimate2() {
runOnUiThread(new Runnable() {
@Override
public void run() {
e.startAnimation(anim_fadeIn);
}
});
}
场景:
按下button1和text1将进行动画处理(即使您进行了几次)。然后按button2会将视图添加到某处,因此无论您按button1还是2,两个文本都将动画化。
方案2:
按下button2和text2将进行动画处理(即使您多次这样做)。然后按button1会将视图添加到某处,因此无论您按button1还是2,两个文本都将进行动画处理。
如何避免此问题
这是我的代码:AlphaAnimation anim_fadeIn;按钮button,button2; TextView t,e; @Override protected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState); ...
删除新的线程包装,只需像这样在主线程中调用mAnimate()或mAnimate2():