2011-02-01 19 views
20

Uygulamamı bal peteği ile sorunsuz çalışacak şekilde hazırlıyorum. Android temasıyla ilgili küçük bir estetik sorusu var.Temayı değiştir Android sürümüne göre değiştir

Petek için aşağıdaki temanın kullanılması önerilir.

android:theme="@android:style/Theme.Holo.Light" 

Uygulamamı, önceki bir sürümde kullanıldığında başka bir temayı nasıl kullanabilirim? peşin

Teşekkür

cevap

32

DÜZENLEME: 3.0 SDK piyasaya sürülen sürümü için güncellendi.


Bunu yapmanın bir yolu <uses-sdk android:targetSdkVersion="11"> değerini belirlemektir. Bunu ayrıca, <application> tanımınızın üzerine yerleştirmelisiniz. Bu, sisteme mevcutsa Holografik temayı ve aksi takdirde varsayılan temayı kullanmasını söyleyecektir.

Bunu yapmanın başka bir yolu, API düzeyi/OS sürümüne bağlı olarak farklı bir temadan miras alan, MyTheme gibi bir temayı tanımlamaktır. Bunu resource directory qualifiers kullanarak yapabilirsiniz.

Dizin yapınız aşağıdaki gibi görünebilir: res/values/styles.xml ait

res/ 
    values/ 
    styles.xml 
    values-v11/ 
    styles.xml 

içeriği gibi bir şey olacaktır:

<resources> 
    <style name="MyTheme" parent="@android:style/Theme.Light"> 
    ... 
    </style> 
</resources> 

Ve res/values-v11/styles.xml içeriği olurdu gibi bir şey:

<resources> 
    <style name="MyTheme" parent="@android:style/Theme.Holo.Light"> 
    ... 
    </style> 
</resources> 

Not Yeniden, Holo teması her zaman API düzeyinde mantıklı olmayabilir, bu nedenle bu yaklaşımı daha sonra düzeltmeniz gerekebilir. values-large-v11 veya benzeri gibi diğer dizin niteleyicileri de kullanabilirsiniz. Tamamen size kalmış.

+0

Harika, teşekkürler Roma. "Gelecekte, Holo temasının her zaman API seviyesinde mantıklı olmayabileceğini unutmayın" ile ne kastettiğinizi merak ediyorum. Holo temasının farklı olabileceğini mi yoksa gelecek sürümlerde de tamamen yeni bir tema olabileceğini mi söylüyorsunuz? Böylece geliştiricinin daha fazla tema barındırması gerekebilir? Bu, NoTitleBar ile varsayılan temayı (Theme veya Theme.Holo olsun) kullanmak gibi basit bir şey yapmak zorlaştırır. Her neyse, herhangi bir açıklama için teşekkürler; Ben ICS –

+0

için sabırsızlanıyorum Bu oldukça kısa görüşlü bir yorum vardı :-) Şimdi çarpıcı. Holo, fiziksel büyüklükten bağımsız olarak API 11+ için kesinlikle mantıklıdır. –

+0

@RomanNurik - Hedef 11 olduğunda bile, Holo Light'ı tanımak için otomatik tamamlama yapmıyorum. Yalnızca project.properties değerinin android-11 olarak değiştirilmesinin ardından projenin derlenebilmesi ve otomatik tamamlanabilmesi çalıştı. –

İlgili konular