1

CalendarContract を介してクエリを実行するときに、イベントのテキストの色を見つけるにはどうすればよいですか? 背景色を確実に提供しているように見える列 DISPLAY_COLOR があることがわかります。大量の CalendarContract テーブルのどこにも、テキストの色の列はありません。

在庫カレンダーのパレットの選択から判断すると、白いテキストはすべての場合に機能するはずです. ただし、「白」をハードコーディングするのは間違っているようです。

より良いアイデアはありますか?

4

2 に答える 2

1

テキストの色を設定して呼び出す方法はないと思います。私がやったことは、うまくいくように見えますが、輝度アルゴリズムを使用することです。私が使用したものは非常に単純です:

  // from CalendarContract.Instances.CONTENT_URI;
  int backgroundColor = cursor.getInt (getColumnIndexInstances.DISPLAY_COLOR));
  int b = backgroundColor & 0xFF;
  int g = (backgroundColor >> 8) & 0xFF;
  int r = (backgroundColor >> 16) & 0xFF;
  int a = (backgroundColor >> 24) & 0xFF;
  int y = (3*r + 6*g + 2*b) / 11;
  int textColor = (y < 128) ? Color.WHITE : Color.BLACK;
于 2015-02-28T18:01:57.977 に答える
0

理想的には、CalenderContract の表示色はデフォルトで白です。列の色を調整する場合は、クエリ内でハード コードする必要があります。html/css カラー コードをググると、使用する色を決定するのに役立ちます。

于 2014-12-30T16:30:30.397 に答える