gpt4 book ai didi

java - onTouchListener 一个ImageView需要点击两次才能起作用,另一个只需点击一次

转载 作者:行者123 更新时间:2023-12-01 06:18:20 24 4
gpt4 key购买 nike

代码如下:

public class MainActivity extends Activity implements OnTouchListener {

RelativeLayout rl;
int i, j = 0;
final int imageArray[] = { R.drawable.w1, R.drawable.w2, R.drawable.w3 };
int image;
final int imageCount = 3;

ImageView back, save, next;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_layout);

final int imageArray[] = { R.drawable.w1, R.drawable.w2, R.drawable.w3 };
image = imageArray[0];

rl = (RelativeLayout) findViewById(R.id.rlBackground);

back = (ImageView) findViewById(R.id.bBack);
save = (ImageView) findViewById(R.id.bSave);
next = (ImageView) findViewById(R.id.bNext);

back.setOnTouchListener(this);
save.setOnTouchListener(this);
next.setOnTouchListener(this);

}

@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub

switch (v.getId()) {
case R.id.bBack:
if (j == 0) {
j = imageCount;
}
image = imageArray[j - 1];
rl.setBackgroundResource(image);
j = j - 1;
break;
case R.id.bSave:
BitmapFactory.Options opts = new BitmapFactory.Options();
opts.inSampleSize = 2;
Bitmap bm = BitmapFactory.decodeResource(getResources(), image,
opts);
// savePicture(bm, "image_name.jpg");
SaveImage savefile = new SaveImage();
savefile.SaveImagee(this, bm);
Toast.makeText(getApplicationContext(),
"Image saved on your gallery!", Toast.LENGTH_LONG).show();
break;

case R.id.bNext:
if (j != imageCount) {
rl.setBackgroundResource(imageArray[j]);
image = imageArray[j];
j = j + 1;
} else {
j = 0;
rl.setBackgroundResource(imageArray[j]);
image = imageArray[j];
j = j + 1;
}
break;

}

return false;
}
}

问题:如果我单击“保存”按钮,它会在第一次单击时起作用。如果我点击下一步按钮,我需要点击两次才能触发该功能,但是之后,如果我继续点击下一步按钮,则只需点击一下即可。但是,当我切换到按钮返回时,需要单击两次,然后只需单击一次,如果我切换回下一个按钮,也会发生同样的情况 - 两次,一次..我猜这与注意力有关。

如果我将 ImageView 更改为 ImageButton,它会触发该函数两次,如果我添加 if 状态(event.getAction() == MotionEvent. ACTION_DOWN) 然后我又必须单击该按钮两次..我希望该按钮始终只需单击一下即可工作。我不明白为什么会发生这种情况,因为保存按钮始终只需单击一下即可工作..

编辑:如果我改变

image = imageArray[j];

image = imageArray[2];

然后该按钮一开始只需单击一下即可工作,但我仍然无法获取它。

最佳答案

我刚刚意识到我设置了 ImageCount = 3,但在数组中它从 0 开始计数,我在这个应用程序开始时编写了该值,我认为它不会错。

关于java - onTouchListener 一个ImageView需要点击两次才能起作用,另一个只需点击一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18024361/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com