2012-06-10 36 views
0

我的視圖有白色背景,必須保持原樣。 我有一個TimePicker在那個白色background.Everything是很好的與android 2.3.3,但android 4.0.3有一個新的timePicker風格。數字有一個非常明亮的顏色。在白色背景下很難看到它們,我沒有找到改變textColor的直接方法。我不想改變背景,因爲它看起來不太好。如何覆蓋TimePicker以更改文字顏色

有什麼辦法可以覆蓋這個,並將數字的顏色設置爲黑色?

誠懇, 沃爾芬

回答

0

看看Android的源styles.xml

https://github.com/android/platform_frameworks_base/blob/master/core/res/res/values/styles.xml

然後,您所設置的樣式您的活動/ timepicker它看起來像你可以做類似此:

<style name="MyTimePicker" parent="@android:style/Widget.TimePicker"> 
    <item name="android:textColor">#000000</item> 
</style> 

或也許(3.0和以上)

<style name="MyHoloTimePicker" parent="@android:style/Widget.Holo.TimePicker"> 
    <item name="android:textColor">#000000</item> 
</style> 

那麼你的XML是:

<TimePicker 
style="@style/MyHoloTimePicker" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" /> 
+0

您好,感謝布倫德爾。我可以在商業項目中使用它嗎? – Wolfen

+0

@Wolfen是的,你爲什麼會認爲你不能? – Blundell

+1

好吧,我已將此添加到我的styles.xml:<! - 全球主題樣式 - > <吃評論/> <樣式名稱= 「Widget.TimePicker」> <項目名稱=「機器人:佈局 「> @機器人:佈局/ time_picker <樣式名稱=」 Widget.Holo.TimePicker」父= 「Widget.TimePicker」> <項名稱= 「機器人:佈局」> @機器人:佈局/ time_picker_holo <樣式名稱= 「Widget.Holo.Light.TimePicker」 父= 「Widget.Holo.TimePicker」> 錯誤:檢索項目的父項時出錯:找不到與給定名稱匹配的資源'小工具' – Wolfen

0

使用此功能

public static boolean setNumberPickerTextColor(NumberPicker numberPicker, int color) { 
final int count = numberPicker.getChildCount(); 
for (int i = 0; i < count; i++) { 
    View child = numberPicker.getChildAt(i); 
    if (child instanceof EditText) { 
    try { 
     Field selectorWheelPaintField = 
      numberPicker.getClass().getDeclaredField("mSelectorWheelPaint"); 
     selectorWheelPaintField.setAccessible(true); 
     ((Paint) selectorWheelPaintField.get(numberPicker)).setColor(color); 
     ((EditText) child).setTextColor(color); 
     numberPicker.invalidate(); 
     return true; 
    } catch (NoSuchFieldException e) { 
     Log.w("setNumberPickerTextColor", e); 
    } catch (IllegalAccessException e) { 
     Log.w("setNumberPickerTextColor", e); 
    } catch (IllegalArgumentException e) { 
     Log.w("setNumberPickerTextColor", e); 
    } 
    } 
} 
return false; 

}