철스토리

ScalableLayout - 비율에 맞춰서 화면 조절 본문

안드로이드/유용한 라이브러리

ScalableLayout - 비율에 맞춰서 화면 조절

HyunChol 2016. 7. 11. 13:22
반응형



내가 가장 좋아하는 라이브러리 중에 하나!


출처 : https://github.com/ssomai/ScalableLayout/blob/master/README_ko.md#scalablelayout-for-android


------------------------------------------------------------------


안드로이드로 레이아웃을 만들다보면 기기마다 비율이 달라지기 때문에 엄청나게 짜증이 나는일이 발생한다.


16:9에 맞춰서 레이아웃을 잡게되면 16:10 또는 다른 비율에서는 원하는 모습이 아닌 다른 레이아웃이 보이는 경우가 있다.


ScalableLayout을 사용할 경우 이라한 문제를 해소할 수 있다.


가로의 비율에 따라 세로의 비율을 조절하기 때문이다.


이미 여러 앱에서 이 라이브러리를 이용하여 개발한 프로젝트가 여럿 있는것 같다.





추가적으로 ScalableLyaout을 사용하면서 TextView에 WrapContent를 해야하는 경우에는 어떻게 해야할까?


개발자 분께서도 적어주셨는데


sl:textview_wrapcontent_direction="bottom"
sl:textview_wrapcontent_resizesurrounded="true"
sl:textview_wrapcontent_movesiblings="true"


이와 같이 xml에서 적어주는 방법이다.


그런데 이렇게 했을 때 서버에서 데이터를 받아와서 TextView에 뿌려줄 때 자동으로 WrapContent가 되지 않는 현상이 발생하였다.


해결한 방법은 소스상에서 해결하는 방법이다.


서버에서 데이터를 받아서 ScalableLayout 내부의 TextView에 값을 Setting 한 후에 WrapContent_direction설정을 다시한번 적용해 주는 것이다.



String content = "Hello World";

ScalableLayout layout_content;

TextView txt_content;
txt_content.setText(content);
layout_content_txt.setTextView_WrapContent(txt_content, ScalableLayout.TextView_WrapContent_Direction.Bottom, true, true);


위와 같은 방법으로 WrapContent를 소스상에서 설정해 줌으로써 해결 가능하다.




반응형
Comments