Перемещение пользовательского представления в View.OnTouchListener - PullRequest
0 голосов
/ 12 июля 2020

Здравствуйте, у меня есть настраиваемый вид, в котором есть android:layout_width="match_parent" и android:layout_height="match_parent". В Activity, содержащем это представление, я хочу реализовать View.OnTouchListener и переместить это представление соответственно влево, вправо, вверх и вниз от центра просмотра. Как этого добиться? Это мой код, но он не работает так, как хотелось бы.

publi c класс Game extends Activity реализует View.OnTouchListener {

public GameSurface gs;

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

    gs = findViewById(R.id.gameSurface);
    gs.setOnTouchListener(this);

    ...
}

@Override
public boolean onTouch(View v, MotionEvent event) {
    float dX = v.getX() - event.getRawX();
    float dY = v.getY() - event.getRawY();

    ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) gs.getLayoutParams();
    params.setMargins((int)dX/2, (int)dY/2, (int)dX/2, 4);
    gs.setLayoutParams(params);
    return true;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...