2017-01-14 7 views
1

私はアンドロイドで簡単なメモウィジェットを作成しました。ウィジェットの色が日中赤から夜に黒に変わる夜間モード機能を追加しました。私はアプリは一日の時間に基づいてウィジェットを変更するには、このコードを使用:ナイトモードがオンになる一度夜間モードの更新ウィジェット

// Find Night Mode Automatically// 
    AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_AUTO); 

    // Checks Whether app Is In Night Mode Or Not// 
    int currentNightMode = context.getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK; 

    // Checks All Scenarios// 
    switch (currentNightMode) { 

     // Night Mode Is Not Active, We're In Day Time// 
     case Configuration.UI_MODE_NIGHT_NO: { 

      // Instantiate Variable RemoteViews remoteViews/Directs Activity To GUI// 
      RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.note_widget_ui); 

      // Initiate viewText Method// 
      viewText(context, remoteViews); 

      // Kill Code// 
      break; 
     } 

     // Night Mode Is Active, We're At Night!// 
     case Configuration.UI_MODE_NIGHT_YES: { 

      // Instantiate Variable RemoteViews remoteViews/Directs Activity To GUI// 
      RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.note_widget_night_ui); 

      // Initiate viewText Method// 
      viewText(context, remoteViews); 

      // Kill Code// 
      break; 
     } 

     // We Don't Know What Mode We're In, Assume Notnight// 
     case Configuration.UI_MODE_NIGHT_UNDEFINED: { 

      // Instantiate Variable RemoteViews remoteViews/Directs Activity To GUI// 
      RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.note_widget_ui); 

      // Initiate viewText Method// 
      viewText(context, remoteViews); 

      // Kill Code// 
      break; 
     } 
    } 

は、どのように私は、ウィジェットがその色を更新するために、このコードを使用します。もう一つの例は、ノーバランチャーとGoogleバーウィジェットです。それはアンドロイドによって夜間モードが起動されると切り替わります。誰もこれを行う方法を知っていますか?

+0

この[1](http://blog.nkdroidsolutions.com/android-daynight-theme-example-using-appcompat-v23-2/)をご覧ください。 –

+0

私の昼夜モードを変更する活動は良いです。私のホーム画面上のウィジェットを赤から黒に変えて問題を解決しています。私は一度だけ夜や日が来ると、ウィジェットがそれを更新する方法を知らない – Jordan

+0

あなたは、色のxmlとパブリックスタイルのクラスを作り直しましたか? –

答えて

0

私は仕事に取り組み、あなたがしていたことをたくさん使います。私のデモは、ウィジェットで働く昼夜のテーマを示しています。 :)問題がある、どのモードがオンになっているかを判断するには、アプリが実行されている必要があります。しかし、それはそれはすべての時間を常に動作していない場合は、車をしている場合https://github.com/juanmendez/android-styling-recipes/tree/02.dayNightTheme+Widget

それは半分の答えです。これは完全な答えです。私はアプリケーションと共に使用するときにライブラリを書いたが、それにはあなたが含める必要がある特定の依存関係が必要です。次に、あなたの依存関係を利用して、WidgetProviderがウィジェットを昼夜のテーマに更新できるようにします。 https://github.com/juanmendez/LightThemeScheduler

関連する問題