Я новичок в 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;
}
});