2012-11-03 19 views
1

我有一个关于android中的网格视图的问题。 我有一个5x5图像的网格。我想连续改变这些图像。每次从该阵列加载新的一组图像。 我有一个随机生成器函数,它在每次加载后都会更改mThumbIds数组的值。 但是我无法在需要某些事件呈现新图像之前应用新图像。在这里我没有任何事件。我希望他们不断改变。 你可以请我。 无法找到任何解决方案。Android开发 - 在2秒后连续更改gridview图像 - 如何使用处理程序来完成此任务?

回答

0

您是否尝试使用AsyncTask更改图像? AsyncTask可以更改一个图像,然后启动一个新的AsyncTask。

另一种选择是使用处理程序。实际上这可能是你最好的选择。 http://mobileorchard.com/android-app-developmentthreading-part-1-handlers/

+0

你好,非常感谢你的回复..但我试过处理程序。它似乎没有工作。我的网格中有5x5图片。现在2秒后,我有一个叫做ShuffleArray()的函数,我调用了它并将我的图像适配器的mThumbIds数组洗掉。然后我打电话给notifydataset更改显示更新的网格。这是我想要做的。处理程序解决方案无效。我曾尝试过。 :(我希望在几秒钟后洗出25张图像后,这些图像会发生变化,所以这使得它看起来像是一些连续的动作。你能告诉我我要去哪里吗? – user1797286

+0

也可以告诉我应该如何使用处理程序....?也许我在那里做错了什么.. – user1797286

+0

显示如何使用它。更新您的问题。@ rgocha的方法是正确的。 – Snicolas

0

你是说每2秒触发一次图像更改功能的计时器?如果是这样,请尝试一个Handler。像

private Handler mHandler = new Handler(); 

    public void onCreate(Bundle savedInstanceState) { 
     // init grid and set first batch of images 
    } 

    protected void onResume() { 
     mHandler.postDelayed(mUpdateImagesTask , 2000); 
    } 


    private Runnable mUpdateImagesTask = new Runnable() { 
    public void run() { 
       // Code to change the images 

       // call me in 2 seconds... 
       mHandler.postDelayed(this, 2000); // 2 seconds 
      } 
    }; 

如果要停止循环的东西只是把一些条件来调用Handler.postDelayer()内mUpdateImagesTask或从外面的Runnable调用mHandler.removeCallbacks(mUpdateImagesTask)(在点击一个按钮,即)。

+0

你好,非常感谢你的回应..但我试过了处理程序。它似乎没有工作。我的网格中有5x5图片。现在2秒后,我有一个叫做ShuffleArray()的函数,我调用了它并将我的图像适配器的mThumbIds数组洗掉。然后我打电话给notifydataset更改显示更新的网格。这是我想要做的。处理程序解决方案无效。我曾尝试过。 :(我希望在几秒钟后洗出25张图像,这样它会看起来像是连续的动画,你能告诉我我错了吗? – user1797286

+0

你可以发布你的代码来看看发生? – rgrocha

相关问题