1

내 프로그램이 모든 활동에서 동일한 배경색을 갖길 원합니다. 그래서 각 layout.xml 파일의 모든 메인 레이아웃에이 코드 줄을 넣었습니다.안드로이드가 배경색을 너무 느리게 변경합니다.

android:background="@color/background" 

지금까지 그렇게 잘 작동하고 멋지게 보입니다. 그러나 최근에 새로운 활동을 호출 할 때 배경색으로 즉시 변경되는 흰색 배경이 있음을 알게되었습니다. 그러나 매우 짧은 시간 동안 내 눈에는 항상이 하얀 색이 있습니다. 정말 짜증이납니다.

누구든지이 문제를 피하는 방법을 알고 있습니까? 나는 그들의 새로운 배경색으로 나의 활동을 정상적으로 원한다.

편집 : 내가 사용하는 모든 활동은 동일한 배경을 가지고 있습니다.

startActivity(new Intent(getActivity(), ActivityAlbumContent.class)); 

지금까지 나는 단지이 하나는 MainActivity을 가지고 있지만 그것을 응용 프로그램에 MainActivity 먼저 흰색 배경을 가지고 시작이기도 : 그건 내가 새로운 활동을 시작하는 방법입니다. 이제는 나중에 만들 활동에 같은 문제가 있다고 가정 할 수 있습니다.

내 styles.xml 안에 있습니다.

<style name="CustomTheme" parent="android:Theme"> 
    <item name="android:windowBackground">@color/background</item> 
</style> 

어떻게 든 windowBackground 속성이 존재하지 않습니다. 매니페스트 파일에서이 테마를 내 응용 프로그램에 설정했지만 충돌이 발생합니다.

06-30 20:43:49.048: E/AndroidRuntime(15411): FATAL EXCEPTION: main 
06-30 20:43:49.048: E/AndroidRuntime(15411): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.davlog.mplayer/com.davlog.mplayer.MainActivity}: java.lang.NullPointerException 
06-30 20:43:49.048: E/AndroidRuntime(15411): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2249) 
06-30 20:43:49.048: E/AndroidRuntime(15411): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2299) 
06-30 20:43:49.048: E/AndroidRuntime(15411): at android.app.ActivityThread.access$700(ActivityThread.java:154) 
06-30 20:43:49.048: E/AndroidRuntime(15411): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1284) 
06-30 20:43:49.048: E/AndroidRuntime(15411): at android.os.Handler.dispatchMessage(Handler.java:99) 
06-30 20:43:49.048: E/AndroidRuntime(15411): at android.os.Looper.loop(Looper.java:137) 
06-30 20:43:49.048: E/AndroidRuntime(15411): at android.app.ActivityThread.main(ActivityThread.java:5306) 
06-30 20:43:49.048: E/AndroidRuntime(15411): at java.lang.reflect.Method.invokeNative(Native Method) 
06-30 20:43:49.048: E/AndroidRuntime(15411): at java.lang.reflect.Method.invoke(Method.java:511) 
06-30 20:43:49.048: E/AndroidRuntime(15411): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102) 
06-30 20:43:49.048: E/AndroidRuntime(15411): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869) 
06-30 20:43:49.048: E/AndroidRuntime(15411): at dalvik.system.NativeStart.main(Native Method) 
06-30 20:43:49.048: E/AndroidRuntime(15411): Caused by: java.lang.NullPointerException 
06-30 20:43:49.048: E/AndroidRuntime(15411): at com.davlog.mplayer.MainActivity.onCreate(MainActivity.java:29) 
06-30 20:43:49.048: E/AndroidRuntime(15411): at android.app.Activity.performCreate(Activity.java:5255) 
06-30 20:43:49.048: E/AndroidRuntime(15411): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1097) 
06-30 20:43:49.048: E/AndroidRuntime(15411): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2213) 
06-30 20:43:49.048: E/AndroidRuntime(15411): ... 11 more 
+0

새 활동을 어떻게 부르십니까? 몇 가지 코드를 보여주십시오. – joao2fast4u

+0

@ joao2fast4u 편집을 게시했습니다. 그러나, 나의 새로운 활동을 부르는 것에 관해 특별한 것은 없습니다. – Davlog

답변

2

당신은 활동이로드 될 때 포함하여 활동의 배경 색상을 설정하는 사용자 정의 테마의 android:windowBackground 속성을 사용할 수 있습니다.

<application 
     android:theme="@style/Theme.MyApp"> 

    <!- ... -> 

</application> 

이 당신의 레이아웃의 각 android:background을 설정하는 필요성을 제거하고, 그런 다음 매니페스트에 당신과 같이 테마를 선택

<style name="Theme.MyApp" parent="android:Theme"> 
    <item name="android:windowBackground">@color/my_app_color</item> 
</style> 

:

예를 들어,이 스타일을 정의 액티비티가로드되는 동안 적절한 색상이 표시됩니다.

API 14 이상의 모든 장치를 지원하는 경우 Holo 테마를 상속 한이 테마의 복사본이 values-14/styles.xml 인 것이 좋습니다. 14 세 이상의 장치 만 지원하는 경우 Holo 테마를 상속 한 테마 하나만 있으면됩니다.

+0

이클립스는 windowBackground 속성을 표시하지 않습니다. 설정할 때 내 애플리케이션이 nullpointerexception을 사용하여 충돌합니다. – Davlog

+0

테마에 설정했거나 레이아웃의 XML에서보기로 설정하려고합니까? 'NullPointerException'는 전혀 관련이 없지만 logcat은 그것이 어디에서 왔는지에 관해 더 많은 지침을 제공 할 수 있어야합니다. –

+0

잠깐만 기다려주세요. 내 스타일 코드를 게시합니다. – Davlog

관련 문제