게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
안드로이드 레이아웃 자바코드 질문입니다.
게시물ID : programmer_3968짧은주소 복사하기
작성자 : 아버지레드불
추천 : 0
조회수 : 1296회
댓글수 : 10개
등록시간 : 2014/06/13 21:34:25
KakaoTalk_20140613_174946347.png

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코드는 위와 같이 구성이 되어있습니다.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    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나 이렇게 값을 주어줘도 변하지 않고 저 크기로 그대로 남아 있다는 점 입니다.

사실 저거 신경 안쓰고 바둑알을 움직이는 걸 할 수 있긴한데, 저게 계속 저리 남아 있으면 뭔가 나중에 프로그램이 문제가 생길 거 같아

계속 수정하는데 변하질 않습니다.

도데체 어떤 부분을 건들려야 저 부분이 수정이 될까요?

가장 큰 레이아웃 부분은 저 색칠한 부분입니다.

전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호