5

나는 다음과 같아야합니다 사용자 정의 테마의 스타일을 가지고 내 모든 활동을 얻기 위해 노력하고 있어요 :모든 Android 기기에서 windowBackground 테마 스타일을 맞춤 설정하는 방법은 무엇인가요?

이 테마는 넥서스 7, 삼성 갤럭시 S4 등 많은 장치에서 작동 good

하고, Samsung Droid Charge (진저 브레드). 그러나, HP 슬레이트 7, 모토로라 드로이드 RAZR와 같은 다른 장치에서,이처럼 보이는 끝 :

bad

이 난에 다음과 같은 한 내 AndroidManifest.xmlapplication 태그 :

android:theme="@style/AppTheme" 

주제는 res/values/styles.xml에 다음과 같다 :

<style name="AppBaseTheme" parent="@android:style/Theme.Light.NoTitleBar"> 

</style> 

<style name="AppTheme" parent="@style/AppBaseTheme"> 
    <item name="android:windowBackground">@color/background</item> 
</style> 

또한 0 아래 styles.xml을 추가 한.

<style name="AppBaseTheme" parent="@android:style/Theme.Holo.Light.NoActionBar"> 
</style> 

마지막으로,이 res/values-v14에서 styles.xml에 나타납니다 : 나는 각 활동에 대한 테마를 정의하고 수동으로 onCreate()setTheme() 기능을 사용하는 것을 시도했다

<style name="AppBaseTheme" parent="@android:style/Theme.DeviceDefault.Light"> 
</style> 

다음 거기에서 해당 스타일이다 , 그러나 아무것도 작동하지 않았다. 나는 또한 모든 Activity에 수동으로 배경을 설정하려고 시도했는데 이것도 작동하지 않았다. 문제를 해결하기 위해 무엇을 할 수 있습니까?

편집 : 흥미로운 점은 스타일에서 android:background을 설정하면 효과가 있지만 배경이 없어야하는 요소는 해당 배경색을 수신한다는 것입니다.

답변

13

문제는 다음에 테마 android:windowBackground을 변경 한 해결의 열쇠 : 나는 더 이상 @color을 사용하고

<item name="android:windowBackground">@drawable/default_background</item> 

공지 사항,하지만 단순히 @drawable가에 대한 XML은 다음과 같습니다 :

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

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> 
    <solid android:color="@color/background"/> 
</shape> 

일부 기기는이 요소의 색상 허용을 지원하지 않는 것 같습니다.

+1

나는 4.1의 랜덤 뷰를 사용하여 임의로 창 배경의 colors.xml에서 색상을 선택했다. 이 솔루션으로 해결할 수 있습니다. 나는 그것이 왜 부서 졌는지에 관해 알기를 바란다! – Tom

1

Android Studio의 최신 버전에서 테마의 부모가 Theme.AppCompat 일 필요가 있음을 알게되었습니다. 또한 values ​​디렉토리에 colors.xml 파일을 만드는 것이 좋은 스타일입니다 (리소스 태그 사이에 명명 된 색상 요소가 있음). RGB 값을 명명 된 색상 요소에 값으로 넣으십시오. @ color /로 스타일을 참조하십시오.

<!--colors.xml in values folder--> 
<resources> 
    <color name="color1">#ffb62a23</color> 
    <color name="color2">#ffedeba6</color> 
    <color name="color3">#00ff00</color> 
</resources> 

<!--style tags --> 
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <item name="android:windowBackground">@color/color2</item> 
    <item name="android:textColorPrimary">@color/color1</item> 
    <item name="android:textColorSecondary">@color/color2</item> 
    <item name="android:textColorTertiary">@color/color3</item> 
</style> 
관련 문제