Какой код добавить для перемещения изображения? - PullRequest
0 голосов
/ 12 июня 2018

Какой код я должен добавить в комментарий в следующей функции 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;
}

1 Ответ

0 голосов
/ 13 июня 2018

Если вы просто хотите, чтобы оно двигалось вправо или влево, а не следовало за прикосновением пользователя, вы также можете использовать анимацию вместо настройки параметров макета.Например, чтобы просто переместить вид вправо или влево, если пользователь касается правой или левой половины экрана, вы можете использовать:

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);
...