你怎么让图像隐形onDrop android?

时间:2013-12-26 01:00:12

标签: android if-statement drag-and-drop

对所有人来说,你好,圣诞快乐,这将是我关于这个主题的第三个问题,(我是非常新的android)但是我做了一个应用程序,其中有一个拖放形状的游戏,它都有效(有点)有6个图像,3个是静态dragListeners,3个是onTouchListeners,你可以移动图像并且它会消失,如果图像被拖动到​​相应的图像上并且如果不是,则快速恢复到原始位置,这样就会使图像消失。我确定它是一个添加更多到我的if块的情况说,图像(方形)只有当它与相同的形状(空白方块)配对时应该是不可见的虽然我不知道在哪里扔它,我也认为我需要更改from.removeView调用,但我不确定是什么替换它请求任何和所有帮助非常感谢。

DragandDrop.java

import android.content.Intent;
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.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.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();
        if(view.getId()==R.id.squareImage && v.getId()==R.id.squareImage1)
        {
            ViewGroup from = (ViewGroup) view.getParent();
            from.removeView(view);
            v.setBackgroundResource(R.drawable.dragsquare1);
            return true;
        } else if(view.getId()==R.id.circleImage && v.getId()==R.id.circleImage1){
            ViewGroup from = (ViewGroup) view.getParent();
            from.removeView(view);
            v.setBackgroundResource(R.drawable.dragcircle1);
            return true;
        } else if(view.getId()==R.id.triangleImage && v.getId()==R.id.triangleImage1){
            ViewGroup from = (ViewGroup) view.getParent();
            from.removeView(view);
            v.setBackgroundResource(R.drawable.dragtriangle1);
            return true;
        }
        else {
            return true;
        }

    }
return true;
}

public void onClick(View v) {
    switch (v.getId()) {

        case R.id.reset:
            Intent intent = getIntent();
            finish();
            startActivity(intent);
    }
}
}

1 个答案:

答案 0 :(得分:0)

摆脱说v.setVisibility(View.INVISIBLE)的行;在你的onTouch方法中。 按下时,会使视图不可见。

相关问题