Category Archives: Android

[Java/Android] 코드상에서 레이아웃 파라미터 설정하기

보통의 안드로이드는 MVC(Model-View-Controller)를 충실하게 이행하고 있습니다. 여기서 View에 해당하는 부분을 XML을 이용하여 표현하고 있죠. 이것은 어찌보면 편리하고 좋아 보이지만 동적인 화면 구성은 역시나 코드에 의존할 수 밖에 없습니다. 아이폰에서도 아무리 Interface Builder에 의존하더라도 이런 부분은 어쩔수 없는게 아닐까 싶기도 하고요.

그래도 조악한 안드로이드의 XML에디터를 보면 Interface Builder에 한표 더 주고 싶어지네요. 아무튼 코드에 의존한 레이아웃 동적 변화를 위해서는 LayoutParam이라는 클래스를 이용해야 합니다. 이 클래스는 거의 대부분의 화면 구성을 위한 ViewGroup을 상속받는 클래스들은 가지고 있습니다.

사용자 삽입 이미지

저기 스크린샷에 보이는 클래스들이 다양한 화면 구성을 위한 위젯들이 가지고 있는 레이아웃 파라미터 클래스입니다. 적용하려는 위젯에 따라 적절히 선택하여 사용을 하시면 됩니다. 어떤것을 사용하냐에 따라 추가로 설정할 수 있는 범위도 달라집니다.

예를 들면 LinearLayout.LayouutParams의 경우 여백의 값을 설정할 수 있습니다. 나머지 위젯의 LayoutParams들도 마찬가지로 위젯에 특화된 기능들이 한두가지씩 있습니다.
[code java]LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
    LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
params.setMargins(15, 20, 15, 20); //left, top, right, bottom[/code]
위에서 볼 수 있듯이 FILL_PARENT, WRAP_CONTENT 설정을 사용할수도 있습니다. 다음은 이렇게 사용한다는 예제입니다.
[code java]LinearLayout ll = new LinearLayout(this);      
LinearLayout.LayoutParams lparam = new LinearLayout.LayoutParams(
             LayoutParams.WRAP_CONTENT, LayoutParams.FILL_PARENT);
lparam.width = 200;

ll.setLayoutParams(lparam);
ll.setBackgroundColor(Color.parseColor(“#00ff00”));

setContentView(ll);[/code]

[Java/Android] 안드로이드 디바이스의 화면을 PC에서 보는 방법

안드로이드 관련해서 발표를 할일이 생겼는데 시뮬레이터는 너무 느리고 디바이스의 화면을 보여주고 싶은데 딱히 방법이 없었던 경험이 있었습니다. 디바이스의 화면을 PC에서 보여주고 싶은데 마땅히 방법이 없는줄 알았습니다. 하지만 좋은 어플리케이션이 있더군요.

1017552148.jar
사용자 삽입 이미지
최초에 실행하면 위와같이 adb의 경로를 물어옵니다. 안드로이드 SDK가 필요하다는 단점이지만 선택해 주시면 바로 화면을 띄울 수 있습니다. adb를 이용해서 주기적으로 스크린샷을 찍어오는것 같습니다.

사용자 삽입 이미지
옵션에서 알 수 있듯이 화면이 작을 경우 비율을 조정하여 보여줄수도 있습니다. 생각보다 프레임은 떨어집니다. 그럭저럭 루팅 안한상태에서도 쓸만한 어플리케이션입니다.