교육 3일차 I.edu()/I.edu(Android)2011. 8. 18. 17:17
휴... 7번까지 해결 완료. 집에서 8번 마무리 고고싱~!
'I.edu() > I.edu(Android)' 카테고리의 다른 글
교육 2일차 (2) | 2011.08.17 |
---|---|
안드로이드 교육 1일 (1) | 2011.08.16 |
교육 2일차 (2) | 2011.08.17 |
---|---|
안드로이드 교육 1일 (1) | 2011.08.16 |
개발환경 : JDK 1.5, eclipse-galileo, google API 7, window XP |
이전 강좌에서도 보았지만 탭을 그대로 두기에는 어딘가 모르게 미흡하다.
색깔도 변경하고 원하는 아이콘을 넣어서 좀더 고급스럽게 만들고 싶을것이다.
(1) 탭에 색깔넣기 |
안드로이드에서 제공하는 기본색은 그림을 봐서 알겠지만 Grey 이며 클릭시 색깔이 바뀌었다가
놓으면 다시 원래색깔로 돌아온다.
이 색깔을 바꾸어 보는데 예제의 내용은 탭 호스트에 포함되어있는 자식 탭들을 모두 불러와
for 문을 돌면서 동일한 색깔로 바꾸는 것이다.// TabHost 에 포함된 Tab의 색깔을 모두 바꾼다
for(int i=0;i<tabHost.getTabWidget().getChildCount();i++){
tabHost.getTabWidget().getChildAt(i)
.setBackgroundColor(Color.parseColor("#734512"));
}
일괄적으로 적용했더니 구분이 가지 않는다. 개별적으로 바꾸고 싶다면 다음과 같이 쓰면 된다.
개발 탭을 알아내는 함수는 getChileAt(i) 이다. i 값은 제일 왼쪽 탭부터 0 으로 시작한다1 |
/** TabHost 에 포함된 Tab의 색깔을 모두 바꾼다, 개별적용 */ |
2 |
tabHost.getTabWidget().getChildAt( 0 ) |
3 |
.setBackgroundColor(Color.parseColor( "#734512" )); |
4 |
tabHost.getTabWidget().getChildAt( 1 ) |
5 |
.setBackgroundColor(Color.parseColor( "#4E4E9C" )); |
(2) 아이콘 넣기 |
위의 예제에서 아이콘을 넣어 더 고급스럽게 만들어 보자.
아이콘은 drawable 폴더에 넣고 소스에서 getResources().getDrawable() 함수를 호출해
필요한 아이콘의 int 값을 넘겨준다.1 |
firstTabSpec.setIndicator( "First Tab Name" , getResources().getDrawable(R.drawable.guitar)); |
2 |
firstTabSpec.setContent( new Intent( this ,FirstTab. class )); |
3 |
|
4 |
secondTabSpec.setIndicator( "Second Tab Name" , getResources().getDrawable(R.drawable.quicktime)); |
5 |
secondTabSpec.setContent( new Intent( this ,SecondTab. class )); |
(3) 원하는 탭을 유지시키기 |
페이지가 로딩되었을때 특정 탭의 내용이 나타날수 있도록 해주고 싶을 때가 있다.
기본은 첫번째 탭인데 2번째 탭을 로딩시 보여주고 싶다면 setCurrentTab(i) 함수를
사용한다. i 는 위에서 언급했듯이 왼쪽탭부터 0 으로 시작한다1 |
/** 탭의 선택 */ |
2 |
tabHost.getTabWidget().setCurrentTab( 1 ); |
(4) 전체 소스 |
FirstTab, SecondTab 은 기본 Activity 클래스를 만들어서 넣으면 됩니다.
그리고 AndroidManifest.xml 에 두 Activity 가 포함되어 있어야 됩니다.
<activity android:name=".widget.FirstTab" />
<activity android:name=".widget.SecondTab" />
01 |
import android.app.TabActivity; |
02 |
import android.content.Intent; |
03 |
import android.graphics.Color; |
04 |
import android.os.Bundle; |
05 |
import android.widget.TabHost; |
06 |
import android.widget.TabHost.TabSpec; |
07 |
|
08 |
import com.sample.R; |
09 |
|
10 |
public class TabColor extends TabActivity { |
11 |
|
12 |
/** Called when the activity is first created. */ |
13 |
@Override |
14 |
public void onCreate(Bundle savedInstanceState) { |
15 |
super .onCreate(savedInstanceState); |
16 |
setContentView(R.layout.tab_color); |
17 |
|
18 |
/** TabHost ID */ |
19 |
TabHost tabHost = (TabHost)findViewById(android.R.id.tabhost); |
20 |
|
21 |
/** 새로운 탭을 추가하기 위한 TabSpect */ |
22 |
TabSpec firstTabSpec = tabHost.newTabSpec( "tid1" ); |
23 |
TabSpec secondTabSpec = tabHost.newTabSpec( "tid1" ); |
24 |
|
25 |
firstTabSpec.setIndicator( "First Tab Name" , getResources().getDrawable(R.drawable.guitar)); |
26 |
firstTabSpec.setContent( new Intent( this ,FirstTab. class )); |
27 |
secondTabSpec.setIndicator( "Second Tab Name" , getResources().getDrawable(R.drawable.quicktime)); |
28 |
secondTabSpec.setContent( new Intent( this ,SecondTab. class )); |
29 |
|
30 |
/** 탭을 TabHost 에 추가한다 */ |
31 |
tabHost.addTab(firstTabSpec); |
32 |
tabHost.addTab(secondTabSpec); |
33 |
|
34 |
// TabHost 에 포함된 Tab의 색깔을 모두 바꾼다, 개별적용 |
35 |
tabHost.getTabWidget().getChildAt( 0 ).setBackgroundColor(Color.parseColor( "#534512" )); |
36 |
tabHost.getTabWidget().getChildAt( 1 ).setBackgroundColor(Color.parseColor( "#4E4E9C" )); |
37 |
|
38 |
// 탭의 선택 |
39 |
tabHost.getTabWidget().setCurrentTab( 1 ); |
40 |
} |
41 |
} |
01 |
<? xml version = "1.0" encoding = "utf-8" ?> |
02 |
|
03 |
< TabHost android:layout_width = "fill_parent" |
04 |
android:layout_height = "fill_parent" xmlns:android = "http://schemas.android.com/apk/res/android" |
05 |
android:id = "@android:id/tabhost" > |
06 |
< LinearLayout android:id = "@+id/LinearLayout01" |
07 |
android:orientation = "vertical" android:layout_height = "fill_parent" |
08 |
android:layout_width = "fill_parent" > |
09 |
< TabWidget android:id = "@android:id/tabs" |
10 |
android:layout_height = "wrap_content" android:layout_width = "fill_parent" ></ TabWidget > |
11 |
< FrameLayout android:id = "@android:id/tabcontent" |
12 |
android:layout_height = "fill_parent" android:layout_width = "fill_parent" ></ FrameLayout > |
13 |
</ LinearLayout > |
14 |
|
15 |
</ TabHost > |
모바일 디스플레이 화면 변경 (0) | 2012.11.27 |
---|---|
Android(안드로이드) 개발 스킨 변경 (1) | 2011.08.16 |
교육 3일차 (0) | 2011.08.18 |
---|---|
안드로이드 교육 1일 (1) | 2011.08.16 |
모바일 디스플레이 화면 변경 (0) | 2012.11.27 |
---|---|
Android(안드로이드) 에서 탭(Tab)을 구현할 때 탭별 색상(Color)변경과 아이콘(icon) 넣어 디자인 하기 (1) | 2011.08.17 |