Android:在不锁定用户界面的情况下更改循环内的图像

标签 android

下面是我的代码。

for(int k=1 ; k<=1000; k++)
{
    if((k%2)==0)
        i.setImageResource(R.drawable.barbie2);
    else
        i.setImageResource(R.drawable.barbie3);

    try {
        Thread.sleep(1000);
    } catch(InterruptedException e) {
    } 
}

我想在不锁定 UI 的情况下每 1 秒交换两个图像。 我怎样才能在 android 中做到这一点,请帮助我。

最佳答案

通过这种方式在单独的线程中执行:

    new Thread(new Runnable() {
        @Override
        public void run() {
            for(int k=1 ; k<=1000; k++)
            {
                if((k%2)==0)
                    i.post(new Runnable() {
                        @Override
                        public void run() {
                            i.setImageResource(R.drawable.barbie2);
                        }
                    });

                else
                    i.post(new Runnable() {
                        @Override
                        public void run() {
                            i.setImageResource(R.drawable.barbie3);
                        }
                    });


                try {
                    Thread.sleep(1000);
                    } catch(InterruptedException e) {
                    } 
            }
        }
    }).start();

如果可能,将图像 i 定义为 final

关于Android:在不锁定用户界面的情况下更改循环内的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9115823/

相关文章:

Android vitals - 卡住唤醒锁和前台服务

android - Flutter Firebase 电话身份验证不起作用

java - android 等待某事

android - 使用 Ionic 4 和 Capacitor 构建时创建的 APK 文件在哪里?

java - 带有按钮的 Android Eclipse 弹出消息

android - 如何使用 RoboSpice 下载 html 源代码?

android - ContentResolver.query 为 HTC EVO 4G LTE 抛出异常

android - 在 Android Studio 中查看 Git 历史记录

Android旋转imageview,我无法在onAnimationEnd()中设置imageview的最终位置

java - 如何使用 RecyclerView 显示空 View ?