앱 정보 - 내 앱 배경이 흐릿하게 보이게 만듭니다. 액티비티에서 getWallpaper()
메서드를 사용하여 드로어 블로 배경 무늬를 얻는 것은 쉽습니다. 드로어 블을 비트 맵으로 변환하고 블러 알고리즘을 사용하여 비트 맵을 흐리게 만든 다음 배경 이미지로 설정합니다. 이 전체 과정은 약 1 ~ 5 초 정도 걸립니다. 그래서 SD 카드에 희미한 배경 무늬를 넣기로 결정 했으므로 SD 카드에서 그 이미지를 얻으려면 시간이 많이 걸리지 않습니다. 그래서 사용자가 벽지를 변경할 때마다 그 벽지를 흐리게 만들고 SD 카드에 저장해야합니다. 이를 위해서는 ACTION_WALLPAPER_CHANGED 브로드 캐스트 리시버가 필요합니다.배경 화면이 변경된 브로드 캐스트 리시버 android
문제 - ACTION_WALLPAPER_CHANGED 인 텐트 필터는 API 16 이전에는 잘 작동하지만 API 16에서는 더 이상 사용되지 않으며 벽지 변경 동작을 방송하지 않습니다.
사용자가 배경을 변경할 때마다 내 앱 배경을 배경 화면의 흐린 이미지로 변경해야합니다.
방법에 대한 다른 접근 방법 (이 작동하는지 확실하지를) 다음과 조언으로 문서에서 'WindowManager.LayoutParams.FLAG_SHOW_WALLPAPER' 플래그를 사용하여 활동 UI 뒤에 배경 화면을 표시하십시오. 'getWallpaper()'를 사용하여 생성 된 비트 맵에서 블러 링 프로세스를 시작하십시오. 비트 맵 흐림 효과는 다단계 프로세스이므로 5 초 지연을 사용하면 이점을 얻을 수 있습니다. (계속) – Vikram
(...) 10 단계를 거치면 흐린 비트 맵을 만들 수 있습니다. 매 단계마다 (0.5 초마다) 결과 비트 맵을 사용하여 배경을 설정합니다. 'getWindow(). setBackgroundDrawable (새 BitmapDrawable (getResources(), processedBitmap))'. 그것은 당신에게 흐릿한 효과를 줄 수 있습니까? 말할 것도없이 5 초를 덜 눈에 띄게 만드는 것이 도움이 될 것입니다. – Vikram
또 다른 방법 : 앱을 시작할 때 (처음으로) getWallpaper()를 사용하여 비트 맵을 검색하고 흐리게 처리 한 다음 _original_ 및 _blurred 복사본 _을 SD 카드에 저장합니다. 후속 실행에서'getWallpaper()'를 사용하여 비트 맵을 검색하고'bitmapFromGetWallpaper.sameAs (originalFromSDCard)'를 사용하여 마지막 실행시 저장 한 _original_과 비교하십시오. 동일한 경우 SD 카드에서 흐려진 사본을 사용하십시오. 그렇지 않으면'bitmapFromGetWallpaper'을 흐릿하게하고 SD 카드에 원본과 흐려진 사본을 업데이트하십시오. 지연은 이제 사용자가 배경 화면을 변경할 때만 가능합니다. 사용 중지 전과 동일합니다. – Vikram