2017-09-20 2 views
0

Qt 애플리케이션의 Android 상태 표시 줄 색상을 변경하는 방법을 아는 사람이 있습니까?Android 용 Qt - 상태 표시 줄 색상

지금까지 많은 코드를 시도했습니다. ++ 솔루션 - 코드는 메인 UI 스레드 내에서 실행되지 않기 때문에 오류가있는 것 같습니다. AndroidManifest.xmlstyles.xml의 XML 조정이 적어도 영향을 미치는 것으로 보입니다. 툴바 *하지만 상태 표시 줄은 아닙니다. * ..

누군가가 C++ 솔루션을 제공 할 수 있습니까? 아니면 xml로 결과에 도달 한 사람이 있습니까?

도움 주셔서 감사합니다.


* '상태 표시 줄'과 '툴바'라는 용어에 대해 Android에서는 'statusbar'라는 두 가지 UI 요소를 호출합니다. 그래서이 경우, 나는 그들 중 하나를 '도구 모음'이라고 부릅니다. 명확히하기 위해 :

Screenshot

답변

0

Volodymyr Shevchyk

최종 솔루션에

감사를 해결 : 사용 (광산은 비트 하드 코드 틱)

QtAndroid::runOnAndroidThread([=]() 
{ 
    QAndroidJniObject window = QtAndroid::androidActivity().callObjectMethod("getWindow", "()Landroid/view/Window;"); 
    window.callMethod<void>("addFlags", "(I)V", 0x80000000); 
    window.callMethod<void>("clearFlags", "(I)V", 0x04000000); 
    window.callMethod<void>("setStatusBarColor", "(I)V", 0xffffffff); // Desired statusbar color 
});              // A R G B 

추출물 here 다시 한번 확인하고 here.

Qt 버전 5.7 이상인지 확인하십시오. 그렇지 않으면 QtAndroid::runOnAndroidThread이 작동하지 않습니다.

QAndroidJniObject decorView = window.callObjectMethod("getDecorView", "()Landroid/view/View;"); 
    decorView.callMethod<void>("setSystemUiVisibility", "(I)V", 0x00002000); 
:

참고

는 흰색, 또는 배경으로 다른 매우 밝은 색을 사용하는 경우, 상태 표시 줄의 텍스트는 다음과 같은 코드를 사용하여 조금 더 어둡게 만들 수 있습니다