Какой код добавить для перемещения изображения?
Какой код я должен поставить в комментарии в следующем OnTouch
функционировать так, чтобы изображение, CIRCLE1, перемещалось вправо или влево при касании правой или левой части экрана? Как видите, я пытался использовать float X = ImageView.getX(); X++;
Как я мог улучшить это?
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (v.getId()) {
case R.id.circle1:
if (event.getAction() == MotionEvent.ACTION_DOWN) {
//WHAT CODE SHOULD I PUT INSTEAD OF THE FLOAT X AND X++
float X = ImageView.getX();
X++;
}
break;
}
return false;
}
2 ответа
Решение
Если вы просто хотите, чтобы он двигался вправо или влево, а не следовал пользовательскому прикосновению, вы также можете использовать анимацию вместо настройки параметров макета. Например, чтобы просто переместить вид вправо или влево, если пользователь касается правой или левой половины экрана, вы можете использовать:
int ScreenWidth = getResources().getDisplayMetrics().widthPixels;
float Xtouch = event.getRawX();
int sign = Xtouch > 0.5*ScreenWidth ? 1 : -1;
float XToMove = 50; // or whatever amount you want
int durationMs = 50;
v.animate().translationXBy(sign*XToMove).setDuration(durationMs);
Г-н Вячеслав Шылкин полностью ответил на ваш запрос в этом похожем вопросе:
Android: переместить взгляд на сенсорное движение (ACTION_MOVE)