2011-06-24 57 views

Trả lời

59

Bạn có thể lưu màu cũ và sau đó sử dụng nó để khôi phục giá trị ban đầu. Dưới đây là một ví dụ:

ColorStateList oldColors = textView.getTextColors(); //save original colors 
textView.setTextColor(Color.RED); 
.... 
textView.setTextColor(oldColors);//restore original colors 

Nhưng trong mặc định chung TextView màu văn bản được xác định từ Theme hiện hành áp dụng cho Activity của bạn.

+0

Làm việc hoàn hảo đối với tôi, Cảm ơn bạn! –

+0

Giải pháp chính xác nhất. Bảo toàn trạng thái màu văn bản (tắt, vv) – dasar

+0

Từ quan sát của tôi, màu văn bản được xác định theo chủ đề không được thừa kế bởi TextView được thêm động từ mã. Nó luôn xuất hiện màu trắng bất kể chủ đề tối/sáng. – shiouming

0

Không có màu mặc định. Điều đó có nghĩa là mọi thiết bị đều có thể sở hữu.

+5

Không có màu mặc định, chỉ mỗi phân phối Android có thể ghi đè lên chúng – for3st

+0

@ for3st Bạn có biết các trường hợp nào mà chúng thay đổi không? –

1

Tôi tin rằng giá trị số nguyên mặc định là 16711935 (0x00FF00FF).

+9

wow công cụ mã hóa cứng, bạn biết đấy. Đây có phải là giá trị cho tất cả các phiên bản Android trên tất cả các thiết bị và với tất cả các chủ đề có thể lựa chọn không ?! Joking, Bạn biết đấy ... :) – Bondax

+1

Vì vậy, màu văn bản mặc định trong android có màu hồng? Tôi nghĩ rằng nội dung này phù hợp hơn với # 060001 http://developer.android.com/reference/android/R.color.html#primary_text_dark – for3st

33

Có một số màu sắc mặc định theo quy định tại android.R.color

int c = getResources().getColor(android.R.color.primary_text_dark); 
+3

Nó phải là 'int c = ...' thay vì 'Màu c = .. .' –

+4

Kể từ API level23, 'getResources(). GetColor (int id)' hiện không còn được dùng nữa (xem [link] (https://developer.android.com/reference/android/content/res/Resources.html# getColor% 28%% 29)). Bạn có thể sử dụng 'getResources(). GetColor (int id, Resources.Chủ đề chủ đề) 'hoặc' ContextCompat.getColor (contex, android.R.color.primary_text_dark) ' – InfectedPacket

11

Nhận các giá trị từ các thuộc tính:

int[] attrs = new int[] { android.R.attr.textColorSecondary }; 
TypedArray a = getTheme().obtainStyledAttributes(R.style.AppTheme, attrs); 
DEFAULT_TEXT_COLOR = a.getColor(0, Color.RED); 
a.recycle(); 
+0

Điều này có vẻ như nó sẽ chọn đúng màu dựa trên chủ đề, và sẽ cập nhật ví dụ, nếu ứng dụng đang ở chế độ ban đêm. –

+0

Để lấy TypedArray cho chủ đề hiện tại, nó không có Theme arg: TypedArray a = getTheme(). ObtainStyledAttributes (attrs); – petrsyn

+0

Điều này sẽ chỉ nhận được một màu thích hợp nếu chủ đề thực sự đang sử dụng textColorSecondary. Vì có thể ghi đè điều này trong một chủ đề hoặc kiểu, đây không phải là cách rất chính xác để xác định màu văn bản mặc định cho một chế độ xem cụ thể sẽ thực sự là gì. Cũng lưu ý rằng chế độ xem riêng lẻ hiện có thể được theo chủ đề, do đó, chủ đề được liên kết với ngữ cảnh của chế độ xem nên được sử dụng thay vì giả sử chủ đề của hoạt động có hiệu lực cho tất cả các chế độ xem. –

4

Có giá trị mặc định trong đề tài mà Android sử dụng nếu bạn không thể chỉ định một màu sắc văn bản . Nó có thể là các màu khác nhau trong các giao diện người dùng Android khác nhau (ví dụ: HTC Sense, Samsung TouchWiz, v.v.). Android có chủ đề _dark_light, do đó các giá trị mặc định khác nhau cho các chủ đề này (nhưng gần như màu đen ở cả hai đều trong vani android). Tuy nhiên, thực tiễn tốt là tự xác định màu văn bản chính của bạn để cung cấp một kiểu nhất quán trên toàn bộ thiết bị.

Trong mã:

getResources().getColor(android.R.color.primary_text_dark); 
getResources().getColor(android.R.color.primary_text_light); 

Trong xml:

android:color="@android:color/primary_text_dark" 
android:color="@android:color/primary_text_light" 

Là tài liệu tham khảo trong vani Android màu sắc văn bản chủ đề tối là #060001 và trong chủ đề ánh sáng đó là #060003 từ v1 API. See the android style class here

37

Trên thực tế các TextView màu là:

android:textColor="@android:color/tab_indicator_text" 

hoặc

#808080 
+1

Đó là màu văn bản chỉ báo tab mặc định. Trong nhiều trường hợp, nó có thể giống như màu văn bản mặc định, nhưng tôi sẽ không dựa vào nó. – k2col

+2

Rất gần, nhưng màu này không giống nhau. – LukTar

Các vấn đề liên quan