2009-12-03 4 views
1

현재 런타임에서 Android 테마 스타일을 변경하는 중입니다. 사용자가 테마 리소스를 선택하면 현재 애플리케이션뿐만 아니라 전화에 설치된 모든 애플리케이션을 변경해야합니다. 예를 들어 활동을 설정할 때 시스템 언어를 변경하는 것처럼 모든 응용 프로그램의 언어가 변경됩니다. 나는 안드로이드 프레임 워크가 이것을 어떻게 달성 하는지를 알 수 없다.런타임에 Android 테마를 변경하는 방법이 있습니까?

는 동안 나는 그냥이 같은 패키지 매니저를 사용하려고 : 그것은 작동하지 않습니다

PackageManager manager = getPackageManager(); 
    List<ApplicationInfo> apps = manager 
      .getInstalledApplications(PackageManager.GET_META_DATA); 

    for (ApplicationInfo app : apps) { 
     app.theme=android.R.style.Theme_Light_NoTitleBar_Fullscreen; 
    } 

. ApplicationInfo의 "테마"속성은 읽기 전용입니까?

답변

3

외국 앱의 데이터를 패치하는 것이 좋지 않다고 생각합니다. 당신은 테마를 파생시키지 않을 것이고, 새로 설치된 앱을 발견해야합니다. 어쨌든 그런 변경을 위해서 뿌리깊은 전화기가 필요할 것입니다. 그래서 Metamorph와 같은 기본 테마 리소스를 덮어 쓰지 마십시오. 물론 안드로이드가 처음부터 사용자 정의가 가능한 기본 테마를 지원한다면 최상의 솔루션이 될 것입니다.

관련 문제