Перемещение и изменение размера виджета в Android Studio - PullRequest
0 голосов
/ 07 декабря 2018

Я новичок в Android Studio

Я только что создал код для изменения размера и перемещения местоположения моего виджета

, если пользователь перетаскивал его в середину виджета, это означает изменениерасположение виджета с помощью перетаскивания

, и если пользователь перетянул край (с шагом 50dp от края) виджета, то это означает изменение размера виджета

, над которым я работалэто на некоторое время и не может сделать это правильно.

, если я переместил виджет, изменение размера не работает

, если я не могу развернуть виджет столько, сколько я хочу

кроме того, это не совсем гладко, иногда это похоже на работу, а иногда нет, я был бы признателен, если бы кто-нибудь смог мне помочь с этим кодом

mFloatingWidget.findViewById(R.id.root_container).setOnTouchListener(new View.OnTouchListener() {
    private int initialX;
    private int initialY;
    private float initialTouchX;
    private float initialTouchY;
    private int x;
    private  int y;
    private int initialW;
    private int initialH;
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        x=(int)event.getX();
        y=(int)event.getY();



        switch (event.getAction()) {


            case MotionEvent.ACTION_DOWN:
                initialX = params.x;
                initialY = params.y;
                initialW= v.getWidth() ;
                initialH = v.getHeight();
                initialTouchX = event.getRawX();
                initialTouchY = event.getRawY();
                return true;

            case MotionEvent.ACTION_MOVE:
                if(Math.abs(initialTouchX-initialW) <=50){
                    v.getLayoutParams().width = x;
                    v.getLayoutParams().height = y;
                    v.requestLayout();
                }
                else {
                    params.x = initialX + (int) (event.getRawX() - initialTouchX);
                    params.y = initialY + (int) (event.getRawY() - initialTouchY);
                    mWindowManager.updateViewLayout(mFloatingWidget, params);
                }
                return true;
        }
        return false;
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...