, senin colorBackground bir öznitelik olur sana tanımlamak gerekir. Bu örnekte
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="?attr/theme_dependent_icon" />
</LinearLayout>
, kullandığım çünkü özel tema adlarıyla MyDarkTheme
: Eğer main_activity.xml
yılında ?attr/theme_dependent_icon
aracılığıyla özelliğini kullanabilirsiniz, Sonra
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<declare-styleable name="custom_menu">
<attr name="theme_dependent_icon" format="reference"/>
</declare-styleable>
<style name="MyDarkTheme" parent="android:Theme" >
<item name="theme_dependent_icon">@drawable/ic_search_dark</item>
</style>
<style name="MyLightTheme" parent="android:Theme.Light" >
<item name="theme_dependent_icon">@drawable/ic_search_light</item>
</style>
</resources>
: theme_dependent_icon
bir styles.xml
tanımlanır Aşağıdaki örneği inceleyin ve MyLightTheme
, setContentView
'dan önce ana faaliyetinizin onCreate
sırasında, yani
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setTheme(R.style.MyDarkTheme); // causes ic_search_dark.png to be shown
// setTheme(R.style.MyLightTheme); // causes ic_search_light.png to be shown
setContentView(R.layout.main_activity);
}
Arama ayarıTheme(), çalışma zamanı sırasında bir temayı seçmenin bir yoludur. Başka bir yol ise, values
, values-11
, , values-14
standartlarına uygun, 1.styles.xml
'un çeşitli sürümlerini, Android 3.0 (API-11) teması ve Android 4.0 (API-14) temasıyla ilişkilendirmektir.
Android olmadan bu etiketler: android kaynağındaki aynı res/values klasöründe attr xml dosyaları içinde tanımlanmış gibi görünüyor. http://android.git.kernel.org/?p=platform/frameworks/base.git;a=tree;f=core/res/res/values;hb=HEAD attrs.xml dosyasına bakın ve attrs_manifest.xml I ya xmlns kullanarak bunları bir şekilde almanız veya değerler klasörünüze benzer dosyaları eklemeniz gerektiğini düşünüyorum, ancak emin olmak için xml hakkında yeterli bilgi sahibi değilim. – Jems