2011-11-09 4 views
1

현재 응용 프로그램 배경을 전화 배경 화면으로 표시하고 있습니다.배경 화면을 항상 배경 화면으로 설정하는 방법은 무엇입니까?

getWindow().setFlags(WindowManager.LayoutParams.FLAG_SHOW_WALLPAPER, 
        WindowManager.LayoutParams.FLAG_SHOW_WALLPAPER); 

하지만 애플리케이션을 시작할 때 어떤 이유로 아이콘을 눌러야합니다. 홈 화면에 아이콘이있는 활동 화면 만 표시됩니다. 대화 상자를 사용하지는 않았지만 레이아웃은 그냥 그렇게 설정되어 있기 때문에 대화 상자처럼 보입니다. 그래서이 활동이 실행될 때마다 벽지를 보여주고 싶습니다. 그러나 다른 활동으로 전환하는 것과 같은 다음 이벤트가 발생한 후에 만 ​​배경 화면을 보여줍니다. 나는 이미 onCreate()에 해당 코드를 넣었고 언제든지 setContentView() ..... 할 일이 있습니다. 그런 일을하는 방법이 있을까요 아니면 전혀 없습니다. 다음 코드

+0

을 읽고 두 번 나는 아직도 문제가 무엇인지 완전히 확신하지 않습니다. 스크린 샷을 제공 할 수 있습니까? (아마도 무언가를 다시 그리기 위해 invalidate() 등을 호출하는 것처럼 들리지만 실제로는 확실하지 않습니다). – Warpzit

답변

4

. 나는 내가 원하는 것에 대한 해결책을 발견했다. 그것은 단지 별도의 themes.xml 파일을 만들고 단지 기본 android themes.xml에 정의 된 Theme.Dialog를 조정할뿐입니다. 내가 한 모든 것은 애니메이션 부분을 변경하는 것이 었습니다. 원래 안드로이드 themes.xml 라인은 다음과 같습니다.

<item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item> 

그러나 안드로이드 themes.xml에서 수정 한 이후에는 효과가 없습니다. 방금 위에서 말한 것처럼 themes.xml을 직접 만들고 android : Theme.Dialog로 parent를 설정했습니다. 그리고이 라인을 추가했습니다.

<item name="android:windowAnimationStyle">@android:style/Animation</item> 

도움 주셔서 감사합니다.이 솔루션이 다른 사람들에게 도움이되기를 바랍니다.

APPCOMPAT의 사용자의 경우
0

사용 - 긴 검색 및 시행 착오 후

rl = (RelativeLayout)findViewById(R.id.someid); 
    //relative layout is my root node in main.xml (yours may be linearlayout) 
    WallpaperManager wm = WallpaperManager.getInstance(this); 
    Drawable d = wm.peekDrawable(); 
    rl.setBackgroundDrawable(d);// You can also use rl.setBackgroundDrawable(getWallpaper); 
+0

귀하의 의견을 주셔서 감사합니다 rohit하지만 널 포인터 예외 rl.setBackgroundDrawable (d)에서; onCreat()에 코드를 추가하고 main.xml에 내 루트 노드에 대한 ID를 추가하고 RelativeLayout을 LinearLayout으로 변경했습니다. 이후로 전역 변수로 rl을 선언했습니다. LinearLayout rl; – Jae

+0

null 포인터 예외 문제를 해결했지만 그 코드는 레이아웃의 배경을 설정하는 것처럼 보입니다. 어쩌면 이전에 명확하지 않았습니다 ... 내 활동 레이아웃이 대화 상자처럼 보이기 때문에 내가 애플리케이션을 실행할 때 대화 상자 레이아웃과 활동 아래의 배경에 화면 dims ... 내가 원했던 것은 어둡게 화면에 아무 홈 화면 아이콘없이 벽지를 표시하는 방법이었습니다. 내가 제공 한 코드는 몇 가지 이벤트가 발생한 후에 작동하지만 활동이 발생하는 즉시 작동하고 활동이 활성화되어 있지 않거나 백그라운드에서 실행 중일 때마다 홈 화면으로 돌아갑니다. – Jae

+0

대답. 사실, 나는 벽지 관리자의 안드로이드 워드 프로세서에서 그 코드를 얻었습니다. 나는 그런 시나리오를 보지 못했다. 답변을 공유해 주셔서 감사합니다 :) 행운을 빌어 요 – rohit

3

이, 당신의 styles.xml에서 다음을 사용하여 코드에 대한 필요 :

<!-- Base application theme. --> 
<style name="AppTheme" parent="Theme.AppCompat"> 
    <item name="android:windowBackground">@android:color/transparent</item> 
    <item name="android:colorBackgroundCacheHint">@null</item> 
    <item name="android:windowShowWallpaper">true</item> 
    <item name="android:windowTranslucentNavigation">true</item> 
    <item name="android:windowTranslucentStatus">true</item> 
</style> 
관련 문제