gpt4 book ai didi

java - 在 Android Activity 中的 java.util.Timer 中使用计数器会导致应用程序崩溃

转载 作者:行者123 更新时间:2023-11-29 21:43:31 27 4
gpt4 key购买 nike

我想完成一些我认为很简单但结果很麻烦的事情。

我有一个带有图片的加载屏幕,我希望它在应用程序加载时淡入淡出。我决定通过相对于计数器的正弦值频繁改变它的不透明度来实现这一点。我的代码如下:

ImageView   loadingRaven;   //loading raven at the start of the app
Timer timer; //timer that we're gonna have to use
int elapsed = 0; //elapsed time so far

/*
* the following is in the onCreate() method after the ContentView has been set
*/

loadingRaven = (ImageView)findViewById(R.id.imageView1);


//fade the raven in and out
TimerTask task = new TimerTask()
{
public void run()
{
elapsed++;

//this line causes the app to fail
loadingRaven.setAlpha((float)(Math.sin(elapsed)+1)/2);
}
};
timer = new Timer();
timer.scheduleAtFixedRate(task, 0, 50);

导致我的程序失败的问题是什么?我是否正确使用了 Timer 和 TimerTask?或者是否有更好的方法来频繁更新图像的不透明度以使其平滑地进出?

谢谢

最佳答案

TimerTask 在不同的线程上运行。所以在主 ui 线程上更新 ui。使用runonuithread

      TimerTask task = new TimerTask()
{
public void run()
{
elapsed++;
runOnUiThread(new Runnable() //run on ui thread
{
public void run()
{


loadingRaven.setAlpha((float)(Math.sin(elapsed)+1)/2)
}
});

}
};

TimerTask 在不同的线程上运行。您可以按照建议使用 Handler 和 postDelayed普斯金克

关于java - 在 Android Activity 中的 java.util.Timer 中使用计数器会导致应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16465727/

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