2010-07-01 13 views
12

Bir TextView ile aynı renkleri vermek istediğim özel bir bileşenim var. Yani, onun renkleri kopyalamak istemiyorum, android üzerinde böyle bir kavram varsa, varsayılan arka plan ve ön plan renkleri almak istiyorum.Android'de varsayılan renkler nasıl alınır?

[Düzenle]

aşağıdaki benim TextView metin rengi elde görünüyor. Ama sadece şans mı? Varsayılan bir TextView'un android.R.attr.textColorSecondary kullanacağı sezgisel değil mi? Ve neden resolveAttribute, rengi doğrudan döndürmez?

TypedValue tv = new TypedValue(); 
getContext().getTheme().resolveAttribute(android.R.attr.textColorSecondary, tv, true); 
Color holyColor = getResources().getColor(tv.resourceId); 

[Düzenle]

Ben android.git.kernel.org de TextView kaynak kodunu buldum ama ben kendi kodunda kullanmak gerektiğini sanmıyorum com.android.internal.R için referrences bir sürü içerir gibiydi. Şu anda TextView'un android.R.attr.textColorSecondary'u kullandığını gösteren bir çeşit kanıt arıyorum. TextViewandroid.R.attr.textAppearanceSmall kullandığı

[Düzenle]

ben styles.xml yılında, developer.android.com delillerin çeşit bulundu. textAppearanceSmall, "ikincil metin rengi" olarak varsayılan olarak belgelenmiştir.

Sanırım her şeyden önce şanslıydım, ama hala bu küçük kod parçasını beğenmiyorum.

+0

Gözleminiz de şu belgede desteklenmektedir: [http://developer.android.com/guide/topics/resources/accessing-resources.html#ReferencesToThemeAttributes](http://developer.android.com/ guide/topics/resources/accessing-resources.html # ReferencesToThemeAttributes "Referans stil özellikleri") – fr1550n

cevap

0

Aradığınız şey niteliklerdir. Özellikler, widget'ları stillere bağlar. Örneğin, android:background belirli bir görünüm için belirlediğiniz şeydir, ancak sistemi bir bütün olarak etkilemek için geçersiz kılma kullanabileceğiniz android:panelBackground ve android:windowBackground gibi özellikler vardır.

R.attr'a bakıp ardından widget'ınızdaki bu niteliklere bağlantı vermelisiniz. TextView ile bağlantılı bir dizi olmalı; Android kaynak kodunu indirmek ve hangi özelliklerin kullanıldığını görmek mantıklı olacaktır.