2012-11-16 1 views
18

Android 앱을 쓰고 있는데 앱의 테마를 변경하고 싶습니다.Android 앱의 스타일 및 테마의 텍스트 모양 변경

테마를 사용하여 앱의 배경색을 변경했지만 기본 텍스트 모양을 변경하는 데 어려움이 있습니다.

이 내 styles.xml 리소스 파일입니다.

<resources> 
    <style name="QTheme" parent="android:Theme.Light"> 
     <item name="android:windowBackground">@color/q_green</item> 
     <item name="android:colorBackground">@color/q_green</item> 
     <item name="android:textAppearance">@style/QText</item> 
    </style> 

    <color name="q_green">#008000</color> 
    <color name="white">#FFFFFF</color> 

    <style name="QText" parent="@android:style/TextAppearance.Medium"> 
     <item name="android:textSize">20sp</item> 
     <item name="android:textColor">@color/white</item> 
     <item name="android:textStyle">bold</item> 
     <item name="android:textFont">Verdana</item> 
    </style> 
</resources> 

바로 확인이 내 TextViews 내 레이아웃 파일에 위의 스타일을 사용할 중 하나의 예이다.

<TextView 
    android:id="@+id/txtDevice" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center" 
    android:text="@string/device" 
/> 

어디서 잘못 볼 수 있습니까?

+6

당신은'TextAppearance.Medium' 스타일을 당신의 테마 (TextView를 수정하지 않을 것입니다)에서 오버라이드했습니다. TextView 모양을 수정하려면 테마의 textViewStyle 스타일 속성을 덮어 씁니다. 또는'android : textAppearance'를 사용하여 사용자 정의 스타일을 적용 할 수 있습니다 – Luksprog

+0

고마워요. 항목 이름을 android.textViewStyle로 변경했으며 트릭을 수행하는 것처럼 보였습니다. 내 텍스트보기뿐만 아니라 내 회 전자 내부의 텍스트를 변경했습니다. 차별화 할 방법이 있습니까? –

+0

잘 모르겠습니다. 틀린 것이 아니라면'Spinner'의'TextView' 항목은 테마의'spinnerItemStyle' 속성이 가리키는 다른 스타일 (여전히'TextView' 스타일을 상속받습니다)을 가지고 있습니다. 이를 '@android : style/Widget.TextView.SpinnerItem'으로 설정하고 그것이 어떻게되는지 보길 원할 것입니다. – Luksprog

답변

36

Lusprog의 완전성과 신용으로 지금은 내 리소스 파일

<resources> 
    <style name="QTheme" parent="android:Theme.Light"> 
     <item name="android:windowBackground">@color/q_green</item> 
     <item name="android:colorBackground">@color/q_green</item> 
     <item name="android:textViewStyle">@style/QText</item> 
    </style> 

    <color name="q_green">#008000</color> 
    <color name="white">#FFFFFF</color> 

    <style name="QText" parent="@android:style/TextAppearance.Medium"> 
     <item name="android:textSize">20sp</item> 
     <item name="android:textColor">@color/white</item> 
     <item name="android:textStyle">bold</item> 
     <item name="android:typeface">sans</item> 
    </style> 
</resources> 

글꼴 도움말은 Padma Kumar에게도 감사드립니다.

+0

변경된 사항은 무엇입니까? android : 서체 이외! –

+0

@ style/QText

+0

건초 당신은 안드로이드라고 말할 수 있습니까? textViewStyle은이 속성이 안드로이드에 있습니까? –

1

// 당신이 // 스타일

를 settting에 대한

<item name="android:typeface">monospace</item> 

를 글꼴 스타일을 변경하기위한 서체를 줄 수 //이

<item name="android:textFont">Verdana</item> 

같은 어떤 속성이없는 당신의 스타일 에서이 줄을 제거

<TextView 
    android:id="@+id/txtDevice" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center" 
    style="@style/QText" 
    android:text="@string/device" 
/> 
+2

거기에 테마에 스타일을 추가 할 수있는 방법이 있으므로 모든 텍스트에 스타일을 설정할 필요가 없습니다. –

+0

아니요 xml을 통해 글꼴 스타일을 설정할 수 없습니다. 서체를 통해 서체를 설정해야합니다. –

+0

해당 스타일을 TextView에 추가하면 작동하지 않습니다. –