2016-10-03 34 views
5

Ben
Şimdi benim styles.xml birkaç özel temalar yaşıyorum, bu colorPrimary,colorPrimaryDark ve colorAccent değerleri kullanır.
Düzenimin arka planı için ? Attr/colorAccent kullanıyorum, bu yüzden seçilen temayı temel alarak arka plan rengini seçebilirim.
Yukarıdaki değerlerden herhangi birini kullanırsam, iyi çalışır. Ama arka plan rengim için özel bir öğe değeri tanımlamak istiyorum.
Aşağıdaki gibi denedim ama işe yaramadı. Bunu yapmak için herhangi bir fikir? özel değere sahip
Benim özel tema:
Android tema deklarasyonda özel öğe nasıl eklenir? etkinlik temasını alır zaman

<style name = "customTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
    <item name="colorPrimary">#4285f4</item> 
    <item name="colorPrimaryDark">#2C75F2</item> 
    <item name="colorAccent">#E1FFC7</item> 
    <item name="customBgColor">#d3d3d3</item> 
</style> 


Ve resimde görüldüğü bir attars.xml dosyası oluşturun

<style name="layoutStyle" > 
    <item name="android:background">?attr/customBgColor</item> 
</style> 

cevap

11

olarak Düzenin tarzında kullanmak istiyorum. EXA olarak TextView için Renk Ayarı

<?xml version="1.0" encoding="utf-8"?> 
<resources> 

    <!-- Other values--> 
    <attr name="customBgColor" format="reference" /> 

</resources> 

enter image description here

customTheme 1

<style name = "customTheme1" parent="Theme.AppCompat.Light.NoActionBar"> 
    <!-- Other values--> 
    <item name="customBgColor">#d3d3d3</item> 
</style> 

customTheme 2

<style name = "customTheme2" parent="Theme.AppCompat.Light.NoActionBar"> 
    <!-- Other values--> 
    <!-- Black Color in theme2--> 
    <item name="customBgColor">#111111</item> 
</style> 

yapıldığı Örnek.

Herhangi bir yerde herhangi bir widget'a benzer şekilde kullanabilirsiniz.

Bu TextView aşağıdaki aktivitesi kullanılır.

<TextView 
    android:id="@+id/txt_rate_us_about" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:text="Rate us on Play Store!" 
    android:textColor="?attr/customBgColor" 
    android:textSize="20dp" /> 

Temayı dinamik olarak ayarlamak istediğinizde.

public class AboutUsActivity extends Activity { 

    int theme = 1; 
    // int theme = 2; 2nd theme. 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     switch (theme) { 
      default: 
      case 1: 
       this.setTheme(R.style.customTheme1); 
       break; 
      case 2: 
       this.setTheme(R.style.customTheme2); 
       break; 

     } 
     // you must call `setTheme()` before `setContentView()` 
     setContentView(R.layout.activity_about); 

    } 

Birden çok etkinlik için, her biri için ayrı ayrı tema belirlediniz.

+0

Attrs.xml ekledikten sonra öznitelikleri tanımlamayı özlemişim, iyi çalışıyor. Teşekkürler @sohail. – Shree

+0

Ürünün içine renk kodları koymak yerine. Bunu color.xml içine koyun ve o renk etiketini öğeye ekleyin. – gayan1991