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의 레이아웃의 객체를 만들어 내는 것이 필요하겠습니다. 이렇게 안하면 에러가 나요 ㅜㅜ
'Android' 카테고리의 다른 글
[Android] 갤럭시S 2.2 Froyo 영상... (0) | 2010.07.30 |
---|---|
[Android] TextView에서 marquee 효과 주기... (0) | 2010.06.08 |
[Android] 현재 스크린 크기 구하기 (3) | 2010.06.02 |
[Android] 이미지 버튼 예제... (0) | 2010.05.22 |
[Android] 소리바다 안드로이드 1.0 Open~~ (2) | 2010.05.04 |