반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- android SAF
- 디자이어HD
- 스타크래프트2
- 고속도로
- 이륜차
- qt 설치
- c언어
- QT
- vuejs
- 자료구조
- 오토바이
- Java
- 윈도우7
- 바이크
- 재귀함수
- 정성하
- QTcpServer
- 마영전
- 자바
- 엑티브엑스
- Qt OpenGL
- 잡담
- Qt4
- 스타2
- 안드로이드
- 양평역
- FFI
- HTML
- Qt 소켓프로그래밍
- 알람프로그램
Archives
- Today
- Total
프로그래밍과 잡담
[안드로이드] 코드로 margin 과 padding 설정하기.. 본문
XML상에서는 그냥
<Button
android:paddingTop="20dp"
android:layout_marginTop="20dp"
...
...
/>
위에 처럼 쓰면 된다.
하지만 동적으로 레이아웃을 만들 거나 할 때는 코드로 만들어야 한다.
그 방법은
// 아래와 같이 해줘야 기기에 맞는 DP가 나온다. DisplayMetrics dm = getResources().getDisplayMetrics(); int size = Math.round(20 * dm.density); Button btn = new Button(mContext); //패딩은 그냥 이렇게 쓰면 된다. btn.setPadding(0,size,0,0); //마진을 쓸려면 아래와 같은 방법을 쓰면 된다. LinearLayout.LayoutParams param = new LinearLayout.LayoutParams( LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT); param.topMargin = size; btn.setLayoutParams(param);
위와 같이 쓰면 된다. xml에 비해서는 좀 귀찮긴 한데..
뭐 별 수 있나. 이렇게 쓰라는데..
ps. 댓글을 달아 주신의 야화님의 의견을 따라서 일반적으로 앱을 만들때는 저런 식으로 하드코딩을 하지 않고 xml에 값을 입력해 놓고 getResource().getDimension(id)을 통해서 가져온다. 위에 처럼 그냥 코드에서 20을 넣어 버리면 기기에 맞는 밀도값이 안들어가서 맞지 않게 나온다.
반응형
'프로그래밍 > 안드로이드' 카테고리의 다른 글
[안드로이드] 앱이 크래시가 일어 났을 떄 로그를 저장하는 법 (0) | 2014.03.18 |
---|---|
[안드로이드] 안전모드 (3) | 2014.02.01 |
[OpenGL ES] 미친 GLSL 컴파일러 (0) | 2014.01.18 |
골 때리는 안드로이드 에뮬레이터 (0) | 2013.11.14 |
[안드로이드] RenderScript - 랜더 스크립트 실행시 오류 (0) | 2013.11.03 |
Comments