layout 디자이을 할 때 margin값을 사용하곤 합니다.
디자이너에서는


그림과 같이 해당 부분의 값을 변경하여 margin 값을 사용하곤 합니다.

하지만 java 코드에서 이 값을 변경하기 위해서는 layout의 객체에 직접적인 값을 할당하지 못합니다.
변경하고 싶은 해당 layout이 있다면, 이 해당 layout을 포함하고 있는 ViewGroup이 있을 것입니다.


그림에서 LinearLayout1의 margin값을 변경하고 싶다면 코드 상으로는
LinearLayout layout1 = (LinearLayout) findViewById(R.id.LinearLayout1);

/*변경하고 싶은 레이아웃의 파라미터 값을 가져 옴*/
RelativeLayout.LayoutParams plControl = (RelativeLayout.LayoutParams) layout1.getLayoutParams();

/*해당 margin값 변경*/
plControl.bottomMargin = 10;
plControl.topMargin = 10;

/*변경된 값의 파라미터를 해당 레이아웃 파라미터 값에 셋팅*/
layout1.setLayoutParams(plControl);

코드로는 이런식으로 변경 합니다.
해당 레이아웃의 파라미터 값을 변경하겠다고, 해당 레이아웃의 LayoutParams의 객체를 만드는 것이 아니라, 그 상위에 있는 ViewGroup의 레이아웃의 객체를 만들어 내는 것이 필요하겠습니다. 이렇게 안하면 에러가 나요 ㅜㅜ





안드로이드를 하게 되면 한 화면으로 모든 것을 하기엔 힘들게 되어 있습니다.
머 모바일이 여러 화면들에 다른 기능들로 나누어져 있다 보니..
그럼 새로운 화면... 즉 layout을 추가 하는 방법으로는

package explorer에서 자신의 프로젝트로 간 다음... 화면과 같이 res 디렉토리에서 layout에 가서는 오른쪽 마우스 버튼을 누르게 되면 화면과 같이 나오게 됩니다.

그리고 New에 가서는 File을 선택하면 됩니다.

그리고는 layout 디렉토리에 추가하고자 하는 layout의 이름을 xml확장명으로 넣어주시면 됩니다.

이렇게 해서 Finish를 하게 되면
그림과 같이 layout은 추가 되었으나... X표시로 error가 있다고 하는 군요...
지금 상태는 단순히 텍스트 파일 형태로만 만들어져 있는 상태이므로... layout이라는 것을 만들어 줘야 합니다.

그림과 같이 아래쪽의 탭으로 이동하고 나서 xml이라는 형식을 적어주고 나면
이렇게 완료가 되지 않았고 error가 있다고 나옵니다... 여기에서 또 추가해 주어야 할 것이
위에서 LinearLayout을 찾아서는 오른쪽으로 옮겨줍니다. 이렇게 하게 되면 레이아웃은 만들어 지고
맨 왼쪽 노란색 박스 안에서 보여졌던 빨간색의 X표시로 에러라는 것은 보이지 않게 됩니다.

이런.. 레이아웃 만드는 것도 좀...자동으로 만들어 지는 것이였음 좋겠군요... 익숙하면 머 불편하지는 않지만 ㅜㅜ


+ Recent posts