2011-04-26 1 views

답변

69

당신이 달성하기 위해 사용 스타일을 테마를 정의 할 수 있습니다 : 당신이 테마를 만들

먼저 (이름 : CustomTheme) res/values/styles.xmlActivity :

당신의 androidManifest.xml 당신이 당신의 TabActivity 또는 Activity가 포함 된 위의 테마를 지정에서 다음3210
<style name="CustomTheme" parent="@android:style/Theme"> 
    <item name="android:tabWidgetStyle">@style/CustomTabWidget</item> 
</style> 
<style name="CustomTabWidget" parent="@android:style/Widget.TabWidget"> 
    <item name="android:textAppearance">@style/CustomTabWidgetText</item> 
</style> 
<style name="CustomTabWidgetText" 
    parent="@android:style/TextAppearance.Widget.TabWidget"> 
    <item name="android:textSize">20sp</item> 
    <item name="android:textStyle">bold</item> 
</style> 

당신의 TabWidget : 이것은 당신은 물론 당신의 크기와 스타일을 변경해야합니다 (원하는 출력 서비스를 제공합니다

<activity android:name="MyTabActivity" android:theme="@style/CustomTheme"> 

귀하의 취향).

+2

안드로이드 4.1.2 에뮬레이터에서 이것은 몇 가지 이상한 하나를 찾고있는 탭 스타일을 설정하는 것 : 버튼을 누르면 오렌지색입니다. (아마도 4.1 디폴트 폰트 대신에 안드로이드 1.0 스타일을 적용 했을까?) – sydd

+2

'res '에 넣을 때 오류가 발생하지만'res/values'에 넣으면 오류가 발생합니다. – Barney

+2

@sydd 당신은 Widget.Holo.TabWidget에서 파생해야합니다. – Roel

16

그것의 꽤 있지만 시도하지이 더러운 수정 :

TabWidget tw = (TabWidget)tabHost.findViewById(android.R.id.tabs); 
View tabView = tw.getChildTabViewAt(0); 
TextView tv = (TextView)tabView.findViewById(android.R.id.title); 
tv.setTextSize(20); 

또는

//Do this to hack font size of title text 
LinearLayout ll = (LinearLayout) tabHost.getChildAt(0); 
TabWidget tw = (TabWidget) ll.getChildAt(0); 

// for changing the text size of first tab 
RelativeLayout rllf = (RelativeLayout) tw.getChildAt(0); 
TextView lf = (TextView) rllf.getChildAt(1); 
lf.setTextSize(21); 
lf.setPadding(0, 0, 0, 6); 
+0

두 번째 날은 저에게 효과적입니다. 감사합니다. – sami

+3

위의 코드 스니펫은 2.3 이하의 Android에서 작동합니다. 안드로이드 4.0 및 4.1에서 작동하지 않습니다. – Sathish

+1

작동하지 않습니다. – princepiero

4

은 약간 일반화 :

final TabWidget tw = (TabWidget)mTabHost.findViewById(android.R.id.tabs); 
    for (int i = 0; i < tw.getChildCount(); ++i) 
    { 
     final View tabView = tw.getChildTabViewAt(i); 
     final TextView tv = (TextView)tabView.findViewById(android.R.id.title); 
     tv.setTextSize(20); 
    } 
+0

이것은 저와 잘 맞았습니다! 공유해 주셔서 감사합니다. – Mohammad

2

난 내 코드에이 코드 조각을 사용하지만 다른 3 개 탭은 여전히 ​​변하지 만 첫 번째 탭에 영향을.

TabWidget tw = (TabWidget)tabHost.findViewById(android.R.id.tabs); 
    View tabView = tw.getChildTabViewAt(0); 
    TextView tv = (TextView)tabView.findViewById(android.R.id.title); 
    tv.setTextSize(10);