layout_weight는 뷰를 배치후 남는 공간을 기준으로 가중치 할당된 값에 따라 비율을 나눠먹는다는데요..

 

그래서 크기가 wrap_content일경우는 1:2:1 로 할때 2 부분이 1 부분의 두배로 나오고..

 

fill_parent(match_parent)는 1:2:1 의경우 2 부분이 더 작게 나온다고 합니다..

 

하다보니.. 이게 정확한 해석은 아니더군요...

 

 

 

이걸 어떻게 해석 해야 할가요 -_-... 이건 질문..

 

fill_parent의 경우가 이해가 안되네요.. 이미 첫번째 이미지일때 화면이 가득찬 경우가 될텐데요..

어떠한 기준으로 할당하길레 2의 부분이 더 작게 나오고 1이 더 크게 나온다는건지...

 

 

이건 팁...

 

확실한건..  보통 설명에 wrap_content일때 2가 크게 나오고.. fill_parent일때 1이 크게 나온다는건 아니었습니다..

 

남는 공간을 기준으로 할당한다는 말이 맞겠더군요..(뭔말인진 모르겠지만..)

 

이미지 3개를 가지고 예를 만들어서 해보았을때.. 이미지 크기가 커서 2개 배치시 이미 화면 크기를 넘어가는 것이었습니다..

 

이럴경우 wrap_content로 했지만 역시 가중치 적은게 더 크게 나오네요..

 

아니.. 정확히 말하면.. 4인치 크기로 했을때는 이미지 크기가 넘어가기때문에 가중치 적은게 크게 나오고..

10인치로 하여 이미지 크기의 합이 화면크기보다 작을때는 가중치 큰게 더 크게 나옵니다..

골때리네요..

 

가장 간단한 방법으로는.. 그냥 크기를 0px로 주는법이 있군요.. 비율대로 나옵니다..

 

크기를 0px로 주는건 텍스트뷰에서 특히 유용합니다..

텍스트뷰의 크기를 wrap_content로 하고 가중치를 줄 경우.. 텍스트의 길이에 따라 가중치가 계속 변해버리는 환장할 일이 생깁니다..

이거때문에 예전에 정말 고생했는데... 저도 오늘 이거 해보다가 알게되네요..

 

또한 스크롤뷰 안에 넣으면 가중치가 전혀 안먹히는군요.. 아무래도 스크롤뷰는 그 크기가 끝이없기때문에 당연히 안먹히는거겠죠..

 

 

 

 

하여튼.. 질문은 이미지가 화면의 크기를 꽉 채우게 되는 경우.. 어떤 기준으로 가중치를 주는지 입니다..

 

예를 다시 들면..

 

이미지 3개 배치시.. 크기를 fill_parent로 주고.. 1:2:1 비율로 줄시.. 가운데 2의 가중치를 가진건 아예 나타나지도 않습니다..

2:1:2로 줄시..  이번엔 3개가 다 보이긴 하는데 1 부분이 비율과는 전혀 맞지 않게 큽니다..

 

이걸 어떻게 해석해야 할까요...;

 

아 그리고..

혹시 horizontal로 배치한다고 하고 나눠먹기로 이미지가 늘어났을때..

이미지의 종횡비가 맞도록 세로도 적당히 늘어나게 하는 방법 없을가요..

android:adjustViewBounds="true" 로 될줄 알았는데.. 되긴 개뿔이네요..