반응형
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
- QTcpServer
- qt 설치
- 스타크래프트2
- 재귀함수
- vuejs
- 마영전
- QT
- FFI
- HTML
- 고속도로
- 오토바이
- 이륜차
- 바이크
- 정성하
- 양평역
- 디자이어HD
- 잡담
- android SAF
- 자바
- Qt OpenGL
- 스타2
- 자료구조
- c언어
- 윈도우7
- 엑티브엑스
- Java
- 안드로이드
- Qt 소켓프로그래밍
- 알람프로그램
- Qt4
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