每次单击都可以在ImageView中更改图像

时间:2011-03-18 01:58:15

标签: android

如果有人可以帮我解决我的问题,我会很感激。 当有人点击它时,我试图在ImageView中更改图像。我把我的图像放在一个数组中,我使用while循环来循环遍历所有这些。

我的问题是,虽然第一个图像(图像8,不在数组中)在视图中显示所有其他图像(在创建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++;

    });

2 个答案:

答案 0 :(得分:1)

您不能按照这样的顺序更改图像,并希望在屏幕上显示任何内容。您应该使用单击来启动将执行图像动画的单独线程。请参阅android.view.animation package的说明。听起来AnimationDrawable课程会给你你想要的东西。

答案 1 :(得分:0)

您的案例有一个特殊的视图。 ImageSwitcher是您所需要的。关于如何使用它有一个example from android developers。根据您的需要调整示例应该是微不足道的。