현재 테마가 아니라 테마에서 기본값을 추출해야합니다.참조 ID로 테마를 얻는 방법
는 나는이 같은 현재 테마의 특성을 얻을 얻을 수 있다는 사실을 알고 :
TypedValue typedValue = new TypedValue();
Theme currentTheme = context.getTheme();
currentTheme.resolveAttribute(android.R.attr.windowBackground, typedValue, true);
// result is in: typedValue.data
을하지만, 내가 좋아하는 뭔가가 필요합니다
Theme darkTheme = getTheme(R.style.AppTheme.Dark);
... 내가 단지를 추출 할 필요를 단일 값, 나는 현재의 테마를 바꾸고 싶지 않습니다. 우리가 우리의 기본 Context
주위에 원하는 테마로 임시 ContextThemeWrapper
를 작성하여이 작업을 수행 할 수 있습니다처럼 가능한 모든 Context
할 것으로 예상하지만 래퍼가 주어진 테마에 존재하는 모든 속성 값을 교체해야합니다으로
어쩌면 같은'테마 darkTheme = 새로운 ContextThemeWrapper (getBaseContext(), R.style.AppTheme.Dark) .getTheme(); '. 그것은 다소 우회적 인 것처럼 보이지만,'Theme'을 직접 인스턴스화 할 방법이 있는지 확실하지 않습니다. 나는 파기를해야 할 것이다. –
유망 해 보입니다. 지금 당장 시험해 보겠습니다. –
는 제게는 충분합니다. 답을 쓰면 받아 들일 것입니다. –