, 당신의 colorBackground는 속성이되는 당신을 정의 할 필요가있다. 이 예에서
<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>
, 내가 사용하기 때문에 사용자 정의 테마의 이름 MyDarkTheme
을 : 당신은 당신의 main_activity.xml
에 ?attr/theme_dependent_icon
를 통해 속성을 사용할 수 있습니다, 그리고
<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
가 styles.xml
에 정의 된 다음의 예를 고려 MyLightTheme
인 경우 setContentView
보다 먼저 주 활동의 onCreate
을 선택해야합니다. 즉
@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);
}
setTheme() 호출은 런타임 중에 테마를 선택하는 한 가지 방법입니다. 또 다른 방법은 리소스에 styles.xml
의 여러 버전을 기본 테마 인 Android 3.0 (API-11) 및 Android 4.0 용 테마 (API-14)에 해당하는 values
, values-11
, values-14
으로 정의하는 것입니다.
android :가없는 태그는 안드로이드 소스의 동일한 res/values 폴더에있는 attr xml 파일 내에 정의 된 것 같습니다. http://android.git.kernel.org/?p=platform/frameworks/base.git;a=tree;f=core/res/res/values;hb=HEAD attrs.xml 및 attrs_manifest.xml보기 I xmlns를 사용하여 이러한 파일을 가져 오거나 값 폴더에 유사한 파일을 추가해야한다고 생각하지만 xml에 대해 충분히 알지 못합니다. – Jems