public class MainActivity extends Activity {
private RelativeLayout mRelativeLayout;
private RelativeLayout goLayoutW1;
private RelativeLayout goLayoutW2;
ImageView wh1;
ImageView wh2;
int x1, x2, y1, y2;
testThread test = new testThread(); // Thread 생성
DisplayMetrics displayMetrics = new DisplayMetrics(); // 디바이스 사이즈 받기
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE); // 타이틀을 없애는 것.
setContentView(R.layout.activity_main);
// 디바이스 사이즈 받기
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
mRelativeLayout = (RelativeLayout) findViewById(R.id.R_layout);
int Dwidth = displayMetrics.widthPixels;
//int Dwidth = mRelativeLayout.getWidth();
int Dheight = displayMetrics.heightPixels;
//int Dheight = mRelativeLayout.getHeight();
x1 = 10;
y1 = 10;
x2 = Dwidth / 2;
y2 = Dheight / 2;
// ImageView 를 추가하기 위한 RelativeLayout 생성
goLayoutW1 = new RelativeLayout(this);
goLayoutW2 = new RelativeLayout(this);
LayoutParams parm = new LayoutParams();
parm.width = 40; parm.height = 40;
goLayoutW1.setBackgroundColor(0x00FFFFFF);
goLayoutW1.setLayoutParams(parm);
goLayoutW1.setX(x1); goLayoutW1.setY(y1);
goLayoutW2.setBackgroundColor(0x00FFFFFF);
goLayoutW2.setLayoutParams(parm);
goLayoutW2.setX(x2); goLayoutW2.setY(y2);
// ImageView 객체 생성
LayoutParams iparm = new LayoutParams();
iparm.width = 40; iparm.height = 40;
wh1 = new ImageView( this ) ;
wh1.setImageResource(R.drawable.wh);
wh1.setLayoutParams(iparm);
wh2 = new ImageView( this ) ;
wh2.setImageResource(R.drawable.wh);
wh2.setLayoutParams(iparm);
goLayoutW1.addView(wh1);
goLayoutW2.addView(wh2);
mRelativeLayout.addView(goLayoutW1);
mRelativeLayout.addView(goLayoutW2);
//test.start();
}
// Handler로 이미지 이동 표현
public class testHandler extends Handler{
@Override
public void handleMessage(Message msg) {
//위에서 아래로 바둑알 이동
x1 = x1 + 2; y1 = y1 + 1;
goLayoutW1.setX(x1); goLayoutW1.setY(y1);
//goLayoutW1.scrollBy(-2, -1);
//아래에서 위로 바둑알 이동
x2 = x2 - 2; y2 = y2 - 5;
goLayoutW2.setX(x2); goLayoutW2.setY(y2);
//goLayoutW2.scrollBy(2, 5);
}
}
// Thread로 이용한 화면에 표시되는 이미지 시간 조정
public class testThread extends Thread{
private testHandler handler = new testHandler();
public void run(){
for( int i=0; i<200; i++ ) {
try{
sleep(50);
handler.sendEmptyMessage(0);
} catch (InterruptedException e){
e.printStackTrace();
}
}
}
}
}
java코드는 위와 같이 구성이 되어있습니다.
android:id="@+id/R_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@drawable/board"
tools:context=".MainActivity" >
</RelativeLayout>
xml코드는 위와 같이 간단하게 가장 큰 레이아웃 크기만 지정하였습니다.
여기서 제가 궁금한 부분이 제일 위쪽 왼쪽에 있는 바둑알하고 겹치는 저 부분의 레이아웃 부분이 가장 큰 레이아웃 Relativelayout부분인데,
제가 이거의 크기를 fill_parent나 match_parent나 이렇게 값을 주어줘도 변하지 않고 저 크기로 그대로 남아 있다는 점 입니다.
사실 저거 신경 안쓰고 바둑알을 움직이는 걸 할 수 있긴한데, 저게 계속 저리 남아 있으면 뭔가 나중에 프로그램이 문제가 생길 거 같아
계속 수정하는데 변하질 않습니다.
도데체 어떤 부분을 건들려야 저 부분이 수정이 될까요?
가장 큰 레이아웃 부분은 저 색칠한 부분입니다.