Я создал класс объекта с именем draggable в моем приложении, когда из этого класса вызывается функция createObject
, он создает объект и затем устанавливает ontouchlistener
.Мне удалось создать код, который делает объект перетаскиваемым, но он запаздывает, я подумал, сработает ли его перенос в новый поток, но это не та вещь, которая вызывается снова и снова или длительный процесс.Я задавался вопросом, может ли кто-нибудь дать предложение сделать его менее запаздывающим.
@SuppressLint("ClickableViewAccessibility")
public void createObj(){
Toast.makeText(Game.getInstance(), "Creating Object", Toast.LENGTH_LONG).show();
ImageView imageView = new ImageView(Game.getInstance());
final RelativeLayout layout = Game.getInstance().findViewById(R.id.layout1);
layout.addView(imageView);
imageView.setImageResource(R.drawable.wordfile);
imageView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
final int X = (int) event.getRawX();
final int Y = (int) event.getRawY();
switch (event.getAction() & MotionEvent.ACTION_MASK){
case MotionEvent.ACTION_DOWN:
RelativeLayout.LayoutParams lparams = (RelativeLayout.LayoutParams) v.getLayoutParams();
_xDelta = X - lparams.leftMargin;
_ydelta = Y - lparams.topMargin;
break;
case MotionEvent.ACTION_UP:
break;
case MotionEvent.ACTION_POINTER_DOWN:
break;
case MotionEvent.ACTION_POINTER_UP:
break;
case MotionEvent.ACTION_MOVE:
RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) v.getLayoutParams();
layoutParams.leftMargin = X - _xDelta;
layoutParams.topMargin = Y - _ydelta;
layoutParams.rightMargin = -250;
layoutParams.bottomMargin = -250;
v.setLayoutParams((layoutParams));
break;
}
return true;
}
});
}
код, с которого его вызов в данный момент находится в onCreate
, так что его не называют много.остальная часть приложения очень медвежья, так что не может быть, что либо