每次点击更改ImageView中的图像

问题描述:

如果有人能帮我解决我的问题,我将不胜感激。 我想在有人点击它时更改ImageView中的图像。我把我的图像放在一个数组中,我使用一个while循环来遍历所有的图像。每次点击更改ImageView中的图像

我的问题是,虽然第一个图像(image8,不在数组中)在视图中显示所有其他(在创建OnClickListener后)不要。其实没有什么反应,我不知道错误在哪里。提前致谢。

这是有问题的代码:

final int array[]=new int[5]; 
    array[0]= R.drawable.image6; 
    array[1]= R.drawable.image4; 
    array[2]= R.drawable.image9; 
    array[3]= R.drawable.image4; 
    array[4]= R.drawable.image5; 

ImageView touchView = (ImageView)findViewById(R.id.imageview); 

touchView.setOnTouchListener(new View.OnTouchListener() 
{ 
    @Override 
public boolean onTouch(View touchView, MotionEvent ev) { 
    //get coordinates of touch event 
     int x = (int)ev.getRawX(); 
     int y = (int)ev.getRawY(); 

---代码所缺少---

 ((ImageView)touchView).setImageResource(R.drawable.image8); 

     touchView.setOnClickListener(new View.OnClickListener() { 
     int counter = 0; 
     @Override 
     //Image change on every click 
     public void onClick(View touchView) { 

      while(counter<5){ 
      ((ImageView) touchView).setImageResource(array[counter]); 
         counter++; 

    }); 
+0

“int array [] = new int [5]; {”。我认为这个分号有点失落。它在那里做什么?此外,{紧随着;未正确关闭。你试图做int数组[] =新的int [] {R.drawable.image6,R.drawable.image4,R.drawable.image9,R.drawable.image4,R.drawable.image5}; ?? – gngr44 2011-03-18 02:23:37

+0

谢谢大家的帮助。我设法用ViewFlipper做我想做的事。 – Tsarl 2011-03-21 01:54:28

你不能在那样的顺序改变图像,并期望什么可以炫耀的屏幕。你应该使用点击开始一个单独的线程来完成图像动画。请参阅android.view.animation package的说明。听起来像AnimationDrawable班会给你正是你想要的。

+0

感谢您的回复。当用户点击视图时,我希望数组中的图像发生更改,而不是在预定义时间后自动更改。 – Tsarl 2011-03-18 04:13:39

+0

'AnimationDrawable'就是你想要的。你只需点击一下'start()'方法即可。 – 2011-03-18 12:46:28

对于您的情况有一个特殊的看法。 ImageSwitcher是你需要的。有关于如何使用它的example from android developers。让示例适合您的需求应该是微不足道的。