PROGRAMMING WORKSHOP

Skip Navigation Links. Skip Navigation Links.

Android|
LinerLayout | SrcollView | Button

안드로이드를 하다가, 안드로이드의 언어인 쟈바의 기본을 이야기 하려고
하다가, 게으름을 피우고 ,또 다른 일에 쫓기다가..
몇일전에 안드로이드에 대한 질문이 들어와서
다시 또 안드로이드에 손을 대게 되었다

질문은
버튼을 프로그래밍적으로 수십개 만들고
물론, 인터페이스를 위한 xml화일은 생략하고 그냥 쟈바크래스화일을
통하여 만들고 , 그런데 화면에 넘치니까..스크롤이 문제다
ScrollView를 프로그래밍적으로 넣으려면 어떻게 하느냐는 질문

실은 이것은 이 페이지에서 다룬것에 ScrollView 부속품만 끼워넣으면 된다
끼워넣는데 물론 프로그래밍적으로 ..
위의 페이지의 내용은
LinearLayout을 만들고

LinearLayout layout= new LinearLayout(this);
layout.setOrientation(LinearLayout.VERTICAL);
LinearLayout.LayoutParams p = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT
);

그리고 버튼을 행방향 열방향으로 만들어야 하니까
위의 LinearLayout속에 행이 바뀔때마다 LinerLayout을 만들기 위하여
LinerLayout개체변수를 하나 준비해두고

LinearLayout rowLayout =null;

버튼을 만들면서, 여기에서는 화면에 넘치게 버튼을 만들기 위하여 숫자만 증가 시켰다

for (int i = 1; i < 211; i++)
{
    if( (i % 5) == 1 ) ' 버튼을 5개가 만들어질때마다 LinearLayout추가
    {
        rowLayout = new LinearLayout( this );
        layout.addView( rowLayout, p );
layout.setGravity(Gravity.CENTER);     }
    Button b = new Button(this);
    b.setText(""+ i);
    b.setId(100+i);
    b.setWidth(50);
    b.setHeight(20);
    b.setOnClickListener(this);
    rowLayout.addView(b, p);
}

위와 같이 버튼을 만들면서 5개의 버튼을 하나의 LinearLayout이 갖고 있고
이 LinearLayout을 처음 만들었던 LinearLayout에 붙여 나갔다
이제 이 LinearLayout이 스크롤이 되어야 하니까..
ScrollLayout을 하나 만들어서

ScrollView scrollview = new ScrollView(this);

이 ScrollView에 위에서 만든 LinearLayout을 붙여 준다

scrollview.addView(layout);

이제 이 scrollview를 화면에 띄워주면 된다
화면에 띄워주는 것은

setContentView(scrollview);

와 같이 하면 된다

그런데 위와 같이 만들고 나면...어라...버튼이 화면 왼쪽으로
죄다 몰렸네??!!! 각자의 전화기의 해상도에 따라
좌측으로 몰리거나..했을 것이다

엑셀에서도 셀의 텍스트맞춤이 있듯이 이런 기능을
어디서 처리하는지 찾아야 한다
그런데 쌩뚱맞은 메소드명...setGravity() ..이다..아래와 같이 처리하면
전화기의 해상도에 상관없이 중앙에 자리 잡는다

layout.setGravity(Gravity.CENTER);



상수명은 Gravity라는 개체명을 치면 목록이 줄줄이 나타나니까..
골라서 적용하면 왼쪽으로 보낼지, 오른쪽으로 보낼지, 중앙에 위치할 것인지
다양한 서식이 되는 것이다

아무튼 이렇게 하면 버튼이 몇백개가 만들어져도
손가락을 줄줄줄..스크롤할수 있게 된다
안드로이드는 그냥 필요한 개체를 찾아서 넣어주면 된다
그러니 엑셀에서 개체프로그래밍에 열공하시면
안드로이드는 개발도구가 낯섫고, 언어가 조금 낯섫지만
개체에 대한 개념은 같은 것이다

아래 화일에서 bin 폴더의
uno_scroll_linearlayout_button.apk
로 설치 실행하여 보시고 프로젝트화일을 여러분의 Java 워크스페이스에
Import시키시고 수정도 해보시면서 ,감각을 키우시기를..

***[LOG-IN]***