如何在Android中测试对象是否重叠

如何在Android中测试对象是否重叠,android,object,overlapping,Android,Object,Overlapping,我试着做一个游戏,屏幕上的一个方块用按钮向上、向下、向左或向右移动,当方块遇到另一个随机放置的方块时,方块就会移动。但是,我不知道如何测试这两个ImageView是否重叠。请保持答案简单易懂。我是android新手。如果您需要,以下是我的代码: package com.example.runaway; import android.os.Bundle; import android.app.Activity; import android.util.AttributeSet; import an

我试着做一个游戏,屏幕上的一个方块用按钮向上、向下、向左或向右移动,当方块遇到另一个随机放置的方块时,方块就会移动。但是,我不知道如何测试这两个ImageView是否重叠。请保持答案简单易懂。我是android新手。如果您需要,以下是我的代码:

package com.example.runaway;
import android.os.Bundle;
import android.app.Activity;
import android.util.AttributeSet;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.Toast;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    final ImageView box = (ImageView) findViewById(R.id.player);
    Button pushMedown = (Button) findViewById(R.id.down);



        pushMedown.setOnClickListener(new View.OnClickListener() { 

            int location = (int) box.getY();
            int math = 55;
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub

            location = (int) (math + box.getY()); 
            box.setY(location);
            if (location > 400) {location = location - math;}
            box.setY(location);


        }
    });
                                // up
        final ImageView box1 = box;
        Button pushMeup = (Button) findViewById(R.id.up);



        pushMeup.setOnClickListener(new View.OnClickListener() { 


            int location = (int) box.getY();
            int math = 55;
    @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub

        location = (int) (box.getY() - math); 
        box.setY(location);
        if (location < 10) {location = location + math;}
        box.setY(location);

    }
        });

                            // right
            final ImageView box2 = box;
            Button pushMeleft = (Button) findViewById(R.id.right);



            pushMeleft.setOnClickListener(new View.OnClickListener() { 


                int location1 = (int) box.getX();
                int math = 55;
            @Override
                public void onClick(View v) {
                // TODO Auto-generated method stub

                location1 = (int) (math + box.getX()); 
                box.setX(location1);
                if (location1 > 400) {location1 = location1 - math;}
                box.setX(location1);

                }
            });
                        // left
            final ImageView box3 = box;
            Button pushMeright = (Button) findViewById(R.id.left);



            pushMeright.setOnClickListener(new View.OnClickListener() { 


                    int location1 = (int) box.getX();
                    int math = 55;
                @Override
                    public void onClick(View v) {
                    // TODO Auto-generated method stub

                    location1 = (int) (box.getX() - math); 
                    box.setX(location1);
                    if (location1 < 0) {location1 = location1 + math;}
                    box.setX(location1);

                }});                        

        }

private ImageView findByViewId(int imageview1) {
    // TODO Auto-generated method stub
    return null;
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

}
package com.example.runaway;
导入android.os.Bundle;
导入android.app.Activity;
导入android.util.AttributeSet;
导入android.view.Menu;
导入android.view.view;
导入android.widget.Button;
导入android.widget.ImageView;
导入android.widget.RelativeLayout;
导入android.widget.Toast;
公共类MainActivity扩展了活动{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
最终ImageView框=(ImageView)findViewById(R.id.player);
按钮按下=(按钮)findViewById(R.id.down);
pushMedown.setOnClickListener(新视图.OnClickListener(){
int location=(int)box.getY();
int-math=55;
@凌驾
公共void onClick(视图v){
//TODO自动生成的方法存根
location=(int)(math+box.getY());
框.setY(位置);
如果(位置>400){location=location-math;}
框.setY(位置);
}
});
//向上
最终图像视图框1=框;
按钮pushMeup=(按钮)findViewById(R.id.up);
setOnClickListener(新视图.OnClickListener(){
int location=(int)box.getY();
int-math=55;
@凌驾
公共void onClick(视图v){
//TODO自动生成的方法存根
位置=(int)(box.getY()-math);
框.setY(位置);
如果(位置<10){location=location+math;}
框.setY(位置);
}
});
//对
最终图像视图框2=框;
按钮按钮左=(按钮)findViewById(R.id.right);
pushMeleft.setOnClickListener(新视图.OnClickListener(){
int location1=(int)box.getX();
int-math=55;
@凌驾
公共void onClick(视图v){
//TODO自动生成的方法存根
位置1=(int)(数学+box.getX());
箱。setX(位置1);
如果(location1>400){location1=location1-math;}
箱。setX(位置1);
}
});
//左
最终图像视图框3=框;
按钮pushMeright=(按钮)findViewById(右id左);
pushMeright.setOnClickListener(新视图.OnClickListener(){
int location1=(int)box.getX();
int-math=55;
@凌驾
公共void onClick(视图v){
//TODO自动生成的方法存根
位置1=(int)(box.getX()-math);
箱。setX(位置1);
如果(location1<0){location1=location1+math;}
箱。setX(位置1);
}});                        
}
私有ImageView FindByViewWid(int imageview1){
//TODO自动生成的方法存根
返回null;
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
//为菜单充气;这会将项目添加到操作栏(如果存在)。
getMenuInflater().充气(R.menu.main,menu);
返回true;
}
}

假设您的
图像视图被称为第一视图和第二视图

if((first.getRight()>second.getLeft()&&first.getLeft()<second.getRight())&&first.getTop()>second.getBottom()&&first.getBottom()<second.getTop())
{
    //the imageViews are overlapping)
}

if((first.getRight()>second.getLeft()&&first.getLeft()second.getBottom()&&first.getBottom()删除
private ImageView findByViewId(int-imageview1){
。不需要这个。尽管它可能无法解决其他问题problem@Raghunandan哇,你评论得很快,谢谢你,即使我还有问题!:3