안드로이드 TabHost 사용해서 앱 만들기 


TabHost를 사용하고자 하는 layout 파일에 tabHost를 추가해줍니다.


TabHost의 layout을 작성한 후에 자바 파일에서 TabHost를 추가해줍니다.


mTabHost = (TabHost)findViewById(R.id.tabhost);
mTabHost
.setup();


코드를 실행해보면 아직 Tab이 추가가 안된 화면을 볼 수 있는데 이유는 addTab을 하지 않았기 때문입니다


TabSpec를 만들고 addTab을 해주면 화면에 Tab이 추가된 것을 볼 수 있습니다.


여기서 newTabSpec에 들어가는 String은 Tab에 대한 specification을 추가하는 것이고 반드시 null이 아니여야 합니다.


setContent를 통해 추가하길 원하는 tab의 아이디를 넣고 setIndicator에서 Tab에 나타나는 글자를 설정해줄 수 있습니다.


TabHost.TabSpec tab1 = tabHost.newTabSpec("1").setContent(R.id.tab1).setIndicator("Tab1 이름");

TabHost.TabSpec tab2 = tabHost.newTabSpec("2").setContent(R.id.tab2).setIndicator("Tab2 이름");


mTabHost.addTab(tab1);

mTabHost.addTab(tab2);




 



 





위 앱은 TabHost를 사용해서 만들었습니다.


앱의 전체 코드는 GitHub에서 볼 수 있습니다.


https://github.com/Ywook/Ss3-2





안드로이드 옵션 메뉴(OptionMenu) 사용해서 앱 만들기



안드로이드에서 옵션 메뉴를 사용하기 위해서는 세 단계를 걸쳐야합니다.


메뉴 xml파일 생성 -> 자바파일 작성을 통해 액티비티에 메뉴 붙이기 -> 메뉴 별로 기능 구현하기


res폴더 안에 menu폴더가 있으면 menu.xml을 생성하고 menu폴더가 없으면 menu폴더를 만든후 menu.xml파일을 생성합니다.






menu.xml 파일에 넣고 싶은 item들을 넣은 후에 옵션 메뉴를 사용하고자 하는 Activity의 자바 파일에서


onCreateOptionMenu() 메소드를 Override 한 후 MenuInflater를 통해 옵션 메뉴를 객체화 시켜줍니다.

@Override

public boolean onCreateOptionsMenu(Menu menu) {

MenuInflater inflater = getMenuInflater();

inflater.inflate(R.menu.menu, menu);

return super.onCreateOptionsMenu(menu);

}


그리고 onOptionItemSelected(MenuItem item) 메소드를 Override 하고 메뉴의 기능을 구현해줍니다.

@Override

public boolean onOptionItemSelected(MenuItem item) {

switch (item.getItemId()){

case R.id.mnu:

layout.setBackgroundColor(Color.RED);

break;

return super.onOptionItemSelected(item);

}




 


 


 




위의 앱은 옵션 메뉴(OptionMenu)를 사용해서 만들었습니다.


여태까지 만들었던 앱에는 없었던 그림 회전하기와 그림 2배 확대하기를 추가했습니다.


그림을 회전하기 위해서는 setRotation(float rotation) 메소드를 호출하면 되는데 이 메소드는 처음 각도를 기준으로 들어오는 수 만큼


각도를 바꾸는 메소드입니다.


그림을 2배 확대하기 위한 메소드는 setScaleX(float scale), setScaleY(float scale) 메소드를 사용했습니다.


처음 비율을 기준으로 들어오는 scale만큼 x, y의 넓이를 확대시켜주는 메소드입니다.


확대를 적용하고 싶지 않다면 scale값을 1을 넣어주면 처음처럼 돌아갑니다.



위 앱의 모든 코드는 GitHub에서 볼 수 있습니다.


https://github.com/Ywook/Ss3-1


 






안드로이드 RelativeLayout 사용하기



RelativeLayout은 상대적 위치에 기반하여 뷰들을 배치하는 layout입니다.


이 layout을 사용할 경우에는 기준이 되는 어떤 뷰의 왼쪽, 오른쪽, 위, 아래에 배치하는 방식으로 뷰를 배치해야 합니다.


android:layout_alignTop="@id/tag" tag라는 이름을 가진 뷰의 상단 가장자리에 배치


android:layout_alignBaseline="@id/tag" tag라는 이름을 가진 뷰의 중간자리에 배치


android:layout_alignBottom="@id/tag" tag라는 이름을 가진 뷰의 하단 가장자리에 배치


android:layout_above="@id/tag" tag라는 이름을 가진 뷰 위에 배치


android:layout_below="@id/tag" tag라는 이름을 가진 뷰 아래에 배치


android:layout_toRightOf="@id/tagtag라는 이름을 가진 뷰 오른쪽에 배치


android:layout_toLeftOf="@id/tag" tag라는 이름을 가진 뷰 왼쪽에 배치


android:layout_alignLeft="@id/tagtag라는 이름을 가진 뷰의 왼쪽 가장자리에 배치


android:layout_alignRight="@id/tagtag라는 이름을 가진 뷰의 오른쪽 가장자리에 배치




위의 속성들을 적용해서 만든 화면입니다.


android:layout_alignTop="@id/기준위젯"

android:layout_toLeftOf="@id/기준위젯


두 개의 속성을 동시에 사용하면  1번 자리에 배치됩니다.


android:layout_alignBaseline="@id/기준위젯"

android:layout_toLeftOf="@id/기준위젯"


2번자리에 배치됩니다.



위의 코드는 GitHub에서 볼 수 있습니다.

https://github.com/Ywook/layout/blob/master/app/src/main/res/layout/relativelayout.xml


+ Recent posts