마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

좌표를 랜덤으로 구해서 이미지출력하는것까진 할 수 있는데 여러개 출력할때 겹치는 문제는 어떻게하나요?

0 추천
package com.no1.numgame;
import java.util.Random;

import android.app.Activity;
import android.os.Bundle;
import android.widget.AbsoluteLayout;
import android.widget.Button;
import android.widget.FrameLayout;

public class Challengeselect extends Activity {
  @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         Random ranX1 = new Random();
         Random ranY1 = new Random();
         Random ranX2 = new Random();
         Random ranY2 = new Random();
         setContentView(R.layout.challengeselect);
         Button num1 = new Button(this);
         Button num2 = new Button(this);
         num1.setBackgroundResource(R.drawable.num1);
         num2.setBackgroundResource(R.drawable.num2);
         //
         AbsoluteLayout A1 = new AbsoluteLayout(this);
         A1.addView(num1, new AbsoluteLayout.LayoutParams(250,250,ranX1.nextInt(750),ranY1.nextInt(1350)));
         FrameLayout L1 = (FrameLayout)findViewById(R.id.frame);
         L1.addView(A1);
         //
         AbsoluteLayout A2 = new AbsoluteLayout(this);
         A2.addView(num2, new AbsoluteLayout.LayoutParams(250,250,ranX2.nextInt(750),ranY2.nextInt(1350)));
         if(ranX1.nextInt(750)-ranX2.nextInt(750)<=250||ranX1.nextInt(750)-ranX2.nextInt(750)>=-250){
          A2.removeView(num2);
          A2.addView(num2, new AbsoluteLayout.LayoutParams(250,250,ranX2.nextInt(750),ranY2.nextInt(1350)));
         if(ranY1.nextInt(750)-ranY2.nextInt(750)<=250||ranY1.nextInt(750)-ranY2.nextInt(750)>=-250){
          A2.removeView(num2);
          A2.addView(num2, new AbsoluteLayout.LayoutParams(250,250,ranX2.nextInt(750),ranY2.nextInt(1350)));
         }
         }
         L1.addView(A2);
  }

어떻게 해결할지는 더 생각해보긴 해야하는데 처음에 구했던 num1의 랜덤좌표를 ranX1에 넣어서 ranX2하고 비교연산 하려는데 안되더라구요..ㅠㅠ

확실히 if문사용해서 판단하는게 전보다 겹치는문제가 덜하긴한데 제일 중요한게 겹치는걸 해결하는 부분이라..ㅠ

도움좀 부탁드립니다

히응이 (220 포인트) 님이 2015년 1월 3일 질문
(FrameLayout)findViewById(R.id.frame);
에서
id 다음의 frame은 무엇을 나타내는 것인가요.?

1개의 답변

0 추천
구한 좌표들를 배열에 저장해놓고 좌표가 중복되면 다시 구하는 방식으로...
루틴 (2,360 포인트) 님이 2015년 1월 6일 답변
...