每次点击更改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++;
});
你不能在那样的顺序改变图像,并期望什么可以炫耀的屏幕。你应该使用点击开始一个单独的线程来完成图像动画。请参阅android.view.animation package的说明。听起来像AnimationDrawable班会给你正是你想要的。
感谢您的回复。当用户点击视图时,我希望数组中的图像发生更改,而不是在预定义时间后自动更改。 – Tsarl 2011-03-18 04:13:39
'AnimationDrawable'就是你想要的。你只需点击一下'start()'方法即可。 – 2011-03-18 12:46:28
“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
谢谢大家的帮助。我设法用ViewFlipper做我想做的事。 – Tsarl 2011-03-21 01:54:28