gpt4 book ai didi

java - 在使 ImageView 不可见和可见 Android 之间暂停

转载 作者:行者123 更新时间:2023-11-29 03:21:07 25 4
gpt4 key购买 nike

我正在编写一个 Android 应用程序,在编写该应用程序的主要部分时遇到了问题。

我需要让 ImageView 消失一两秒,然后在点击时重新出现。点击部分有效,我使用 XML 使其可点击,然后在点击时调用一个方法。问题出在我调用的方法中。我需要它:

  1. 消失
  2. 在球员得分上加一
  3. 重新显示玩家分数
  4. 延迟几秒重新出现

我的问题是,无论我做什么,它都不会明显消失。我更喜欢远离 Thread.sleep() 因为我希望用户能够在不可见的情况下点击其他东西(如果我误解了 Thread.sleep(),请告诉我。如果可以使用每种方法是它自己的线程,请告诉我怎么做。我在 Java 方面还是个新手。)但是,我确实尝试使用 Thread.sleep(),它在 sleep 语句之前暂停了代码行,但没有明显影响消失和重新出现之间的时间量。 (这可能听起来令人困惑,看到代码将有助于解释它)。我还尝试使用 while 语句来计数到 100,然后在计数器达到 100 时让它重新出现,但这没有用。我考虑过使用计时器,但我需要一个非常简洁的示例,因为这个计时器需要进入 24 种不同的方法。这是代码,它应该有助于解释一下。

这是我尝试的第一件事,我最好不要使用它

public void tb1(View view){
b1.setVisibility(View.INVISIBLE); //Make the ImageView Invisible
playerscore ++;
score.setText("SCORE: " + playerscore); //The sleep affected this line for some reason
Thread.sleep(1000)
b1.setVisibility(View.VISIBLE) //Make the ImageView Visible
}

这是我尝试的第二件事。

public void tb1(View view) throws InterruptedException{
int i = 0;
b1.setVisibility(View.INVISIBLE);
playerscore ++;
score.setText("SCORE: " + playerscore);
while (i < 100){
i++;
}
if(i == 100){
b1.setVisibility(View.VISIBLE);
}
}

对于这件事,就像我什么都没做一样。没有任何延迟。

我真的不知道尝试什么。我是在使用错误的东西,还是只是简单地使用了错误的东西?请耐心等待我,我在 Java 方面还是新手,经验不是很丰富。

提前感谢您提供的任何/所有帮助!


更新我从答案中添加了代码,但没有任何改变。它消失了,但不会再出现。我是否有任何语法或任何值错误?

        public void tb1(View view){
b1.setImageAlpha(0);
b1.animate().alpha(1f).setDuration(0).setStartDelay(3000).start();
playerscore++;
score.setText("SCORE: " + playerscore);

}

最佳答案

如果您不需要任何动画,则只需使用此代码,假设 b1 是您的类变量:

b1.setVisibility(View.INVISIBLE);
b1.postDelayed(new Runnable() {
@Override
public void run() {
b1.setVisibility(View.VISIBLE);
}
}, 3000);

关于java - 在使 ImageView 不可见和可见 Android 之间暂停,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23588090/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com