본문 바로가기

프로그래밍/Android 짜투리 지식

[android] scrollView child const size

스크롤 뷰를 사용하는데 자식 뷰의 사이즈가 원하는대로 되지 않아서 고생이었다.

동적?사이즈 배분을 해야하는데(형제 뷰의 사이즈에 따라 해당 사이즈가 달라져야한다) 이게 해결이 안되서 몇주동안 미뤘는지 모르겠다.


해결하고자 하는 내용은 다음과 같다.

1. 가로 스크롤 뷰에 들어가는 자식들의 너비(width)를 처음 세팅한 스크롤뷰의 너비(width)로 주고싶다.

2. 더 쉽게 말하면, 스크롤뷰의 자식들의 사이즈를 원하는 사이즈로 주고싶다

[문제]

1. 처음 view를 생성할때 .xml로 생성된 view는 width 와 height가 정해져 있지 않다. 0이다.

2. view 이전에 너비는 화면의 사이즈를 가져오면 되므로, 우측 사이즈는 걱정이 없다. 하지만 왼쪽 시작 위치를 알지 못하기 때문에 길이를 구할 수 없다.


[해결]

setMinimumWidth(), setMaximumWidth() 로 해결

1. 우선 scrollview의 왼쪽 형제뷰(A로 명명)의 사이즈를 fix해 주었다.

2. fix한 A의 width, height를 기기의 해상도를 기준으로 dip로 변환

3. 단말기의 width, height에 A의 width, height를 감하여 나머지 영역만큼 scrollview의 min, max값으로 지정

java 코드 상 pixel을 dp로 변환하는 코드

int d = 120;  // dip 값
float mScale = mContext.getResources().getDisplayMetrics().density;
final int calHeight = (int)(d*mScale);


'프로그래밍 > Android 짜투리 지식' 카테고리의 다른 글

[android] sdcard 내 image 검색  (0) 2012.11.17
[android] selector  (0) 2012.11.05
[android] 스마트폰 해상도 정리  (0) 2012.09.04
[android] dp 값 가져오기  (0) 2012.09.04
[android] R.java 공유  (0) 2011.12.09