Ekrandaki bir düğmeyi taşımak için bu kodu kullanıyorum ancak yanlara ulaştığımda ekranlardan çıkıyor.Ekrandan çıkmayan hareketli bir düğme nasıl oluşturulur
private float mPrezX, mPrevY;
private static final int MAX_CLICK_DURATION = 200;
private long startClickTime;
@Override
public boolean onTouch(View view, MotionEvent event) {
int action = event.getActionMasked();
Button gvup = (Button)findViewById(R.id.giveup);
gvup.setBackground(getResources().getDrawable(R.drawable.btn));
switch (action) {
case MotionEvent.ACTION_DOWN: {
mPrevX = view.getX() - event.getRawX();
mPrevY = view.getY() - event.getRawY();
startClickTime = Calendar.getInstance().getTimeInMillis();//!!
gvup.setBackground(getResources().getDrawable(R.drawable.btn1));
break;
}
case MotionEvent.ACTION_MOVE:
{
view.animate()
.x(event.getRawX() + mPrevX)
.y(event.getRawY() + mPrevY)
.setDuration(0)
.start();
gvup.setBackground(getResources().getDrawable(R.drawable.btn1));
break;
}
case MotionEvent.ACTION_CANCEL:
gvup.setBackground(getResources().getDrawable(R.drawable.btn1));
break;
case MotionEvent.ACTION_UP:
long clickDuration = Calendar.getInstance().getTimeInMillis() - startClickTime;
if(clickDuration < MAX_CLICK_DURATION) {
//click event has occurred
gvup.setBackground(getResources().getDrawable(R.drawable.btn));
giveUp();
}
break;
}
return true;
}
Ayrıca arka plan rengini de değiştirdiyse ve aynı zamanda tıklanabilir hale getirdim.
Ben layout'ta o düğmeye tutmak gerekir.
Ayrıca this ve this bağlantılarını denedim, ancak bu yaklaşımların her ikisi de yanlara taşınırken düğmeyi sıkıştırmaya neden oluyor.
LütfenYardım edin. Şimdiden teşekkürler.
Fikrinizi aldım ve bunu denedim, ancak uygulamamın yolu çalışmıyor. –