как перетащить изображение на изображение

Всем привет и счастливого Рождества на завтра (Великобритания), яЯ довольно новичок в Android, но успешно справился с несколькими кусочками, чего я сейчас пытаюсь достичь, это простое перетаскивание, которое позволяет пользователю перетаскивать изображение ImageView на другой ImageView, если изображение соответствует, тогда оно должно замените перекрывающееся изображение, и если это не так, оно должно вернуться туда, где оно было, я знаю, что это означает создание блока if / else в моем событии перетаскивания, но после просмотра нескольких учебных пособий я не смогуЯ собираю воедино то, что я хотел, и у меня в настоящее время нет достаточных знаний Java, чтобы справиться с этим. В настоящее время у меня есть макет, который содержит 6 изображений, 3 статических, а остальные 3 можно перемещать на экране и размещать на макете, но не я думаю, это потому, что я разработал draglistener для моего макета, а не для моих изображений, но я немного растерялся, может кто-нибудь мне помочь? Спасибо за любые предложения. вот мой код

DragandDrop.java    

import android.os.Bundle;
import android.view.DragEvent;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.DragShadowBuilder;
import android.view.View.OnDragListener;
import android.view.View.OnTouchListener;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.app.Activity;

public class DragandDrop extends Activity implements OnTouchListener, OnDragListener {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.draganddrop);
    findViewById(R.id.squareImage).setOnTouchListener(this);
    findViewById(R.id.circleImage).setOnTouchListener(this);
    findViewById(R.id.triangleImage).setOnTouchListener(this);
    findViewById(R.id.top_container).setOnDragListener(this);
    findViewById(R.id.bottom_container).setOnDragListener(this);
    findViewById(R.id.squareImage1).setOnDragListener(this);
    findViewById(R.id.circleImage1).setOnDragListener(this);
    findViewById(R.id.triangleImage1).setOnDragListener(this);
}

@Override
public boolean onTouch(View v, MotionEvent e) {
    if (e.getAction() == MotionEvent.ACTION_DOWN) {
        DragShadowBuilder shadowBuilder = new View.DragShadowBuilder(v);
        v.startDrag(null, shadowBuilder, v, 0);
        v.setVisibility(View.INVISIBLE);
        return true;
    } else {
        return false;
    }
}

@Override
public boolean onDrag(View v, DragEvent e) {
    if (e.getAction()==DragEvent.ACTION_DROP) {
        View view = (View) e.getLocalState();
        ViewGroup from = (ViewGroup) view.getParent();
        from.removeView(view);
        LinearLayout to = (LinearLayout) v;
        to.addView(view);
        view.setVisibility(View.VISIBLE);
    }
    return true;
}

}

draganddrop.xml






    

    

    






    

    

    




Ответы на вопрос(1)

Ваш ответ на вопрос