티스토리 툴바

블로그 이미지
검색엔진과 모바일에 관심이 많은 개발자 입니다. 건담 프라모델 만드는 것도 좋아하고, 여행을 좋아하고 있습니다. 현재보단 미래에 대한 생각이 많고, 변화된 환경에 도전을 해보고 싶기도 한 개발자 입니다. 카터

카테고리

Total View (139)
My Story (23)
Computer Story (11)
C / C++ (12)
Search Engine (5)
C# (0)
java (1)
silverlight (0)
Android (49)
Window Phone 7 (1)
python (6)
tip (27)
etc (1)
사용기 (2)
Total253,269
Today141
Yesterday158

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의 레이아웃의 객체를 만들어 내는 것이 필요하겠습니다. 이렇게 안하면 에러가 나요 ㅜㅜ




Posted by 카터

최근에 달린 댓글

최근에 받은 트랙백

글 보관함