13
내 응용 프로그램의 빌드마다 다르게 브랜드화 된 로그인 화면이 있습니다. 이 화면의 레이아웃 파일에서 배경 이미지가 달라야하므로 최상위 컨테이너에 다른 스타일을 지정하고 싶습니다. 나는 이것을하는 방법에 손실에 조금이다.사용자 정의 테마에서 스타일을 참조하는 방법
<resources>
<style name="ThemeBase" parent="android:style/Theme.Light" />
<style name="ThemeOne" parent="ThemeBase">
<item name="loginPageContainerStyle">@style/loginPageContainerThemeOne</item>
</style>
<style name="ThemeTwo" parent="ThemeBase">
<item name="loginPageContainerStyle">@style/loginPageContainerThemeTwo</item>
</style>
</resources>
그리고 나는 다음과 같은 스타일 정의 :
<resources>
<declare-styleable name="ThemeBase">
<attr name="loginPageContainerStyle" format="reference" />
</declare-styleable>
</resources>
내가 같은 응용 프로그램에 대한 몇 가지 다른 테마를 가지고 :
<resources>
<style name="loginPageContainerThemeOne">
<item name="android:background">@drawable/background_theme_one</item>
</style>
<style name="loginPageContainerThemeTwo">
<item name="android:background">@drawable/background_theme_two</item>
</style>
</resources>
을
나는 같은 styleable 뭔가를 선언 한
마지막으로 다음과 같은 login.xml 파일이 있습니다.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/loginRoot"
style= [ ? WHAT GOES HERE ? ]
android:gravity="center_horizontal"
android:orientation="horizontal">
[ LAYOUT STUFF ... ]
</LinearLayout>
뭐가 잘못 되었나요? 이런 식으로 할 수 있습니까?
안드로이드 테마 및 스타일을 사용한 훌륭한 예입니다. 애플리케이션 태그의 AndroidManifest에서 android : theme = "@ style/ThemeOne"또는 android : theme = "@ style/ThemeTwo"를 추가해야한다는 것을 언급해야합니다. 그게 우리가 테마에 대해 알아야 할 전부입니다 – Ragaisis
대단히 감사합니다. 정확히 내가 무엇을 찾고 있었는지. – dentex