如果有人可以帮我解决我的问题,我会很感激。 当有人点击它时,我试图在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++;
});
答案 0 :(得分:1)
您不能按照这样的顺序更改图像,并希望在屏幕上显示任何内容。您应该使用单击来启动将执行图像动画的单独线程。请参阅android.view.animation package的说明。听起来AnimationDrawable课程会给你你想要的东西。
答案 1 :(得分:0)
您的案例有一个特殊的视图。 ImageSwitcher是您所需要的。关于如何使用它有一个example from android developers。根据您的需要调整示例应该是微不足道的。