2010-06-10 7 views
4

내 앱에서 사용자가 설정할 수있는 색상을 제공하려고합니다. 검은 색 바탕에 흰색 텍스트와 흰색 배경에 검은 색 텍스트. 나는 여러 listviews, 표준 및 사용자 지정 어댑터를 여러 레이아웃이 있습니다. 사람들은 테마 사용을 제안했지만 모든 레이아웃에서 텍스트 색상을 변경하는 행운은 없었습니다. 누구든지이 일을 할 수있는 실제 테마 레이아웃을 보여줄 수 있습니까? myscreen.setBackGroundColor (xx)를 사용하여 배경색을 쉽게 변경할 수 있지만 테마가있는 텍스트를 변경하려고하면 스피너 텍스트도 변경됩니다.테마로 안드로이드 색상 변경

답변

13

사용 테마에

<item name="android:spinnerStyle">@style/StandardSpinner</item> 
    <item name="android:spinnerItemStyle">@style/StandardSpinnerItem</item> 
    <item name="android:spinnerDropDownItemStyle">@style/StandardSpinnerDropDownItem</item> 

을,이 텍스트 스타일을 재정의합니다. 당신은 AndroidManifest.xml을

전 그것을 정의 할 필요가 응용 프로그램에 당신이 테마를 지적하기 위해

<style name="StandardSpinner" parent="@android:style/Widget.Spinner"> 
    <item name="android:background">@drawable/spinner</item> 
</style> 

<style name="StandardSpinnerItem" parent="@android:style/Widget.TextView.SpinnerItem"> 
    <item name="android:textAppearance">@style/GameDisplayText</item> 
    <item name="android:gravity">center_vertical|center_horizontal</item> 
</style> 

<style name="StandardSpinnerDropDownItem" parent="@android:style/Widget.DropDownItem.Spinner"> 
    <item name="android:textAppearance">@style/GameDisplayText</item> 
</style> 
0
그냥 몇 가지 추가 정보

, :

당신의 스타일은 다음과 같이 보일 것입니다.

<application android:icon="@drawable/icon" android:label="@string/app_name" android:theme="@style/Theme"> 

당신은 디폴트 스타일 속성 중 일부를 재사용, 그래서 값/styles.xml에서 당신

의 부모 테마로 안드로이드 기본 테마를 선언하거나 어디서든 테마 파일입니다해야

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <style name="Theme" parent="@android:style/Theme"> 
     <!-- Widget styles --> 
     <item name="android:spinnerStyle">@android:style/Widget.Spinner</item> 
     <item name="android:spinnerDropDownItemStyle">@style/Widget.DropDownItem.Spinner</item> 
     <item name="android:spinnerItemStyle">@android:style/Widget.TextView.SpinnerItem</item> 
    </style>