Я пытаюсь создать WatchFace, у которого есть краска AM/PM, и я хочу быть разными цветами на основе, если это AM или PM. Я также хочу распространить это на дни недели.Цвет WatchFace на основе даты/времени
SimpleWatchFace.java
Paint ampmPaint = new Paint();
final SimpleDateFormat amorpm = new SimpleDateFormat("a", Locale.US);
if (amorpm.format(new Date()).equals("AM")) {
ampmPaint.setColor(Color.RED);
}
else {
ampmPaint.setColor(Color.GREEN);
}
ampmPaint.setTextSize(context.getResources().getDimension(R.dimen.ampm_size));
ampmPaint.setAntiAlias(true);
ampmPaint.setTextSize(context.getResources().getDimension(R.dimen.ampm_size));
ampmPaint.setAntiAlias(true);
...
public void setAmColor(int color) {
ampmPaint.setColor(color);
}
public void setPmColor(int color) {
ampmPaint.setColor(color);
}
SimpleWatchFaceService.java
@Override
public void onAmbientModeChanged(boolean inAmbientMode) {
super.onAmbientModeChanged(inAmbientMode);
watchFace.setAntiAlias(!inAmbientMode);
if(inAmbientMode) {
watchFace.setPmColor(Color.GRAY);
watchFace.setAmColor(Color.GRAY);
}
else {
watchFace.setPmColor(Color.GREEN);
watchFace.setAmColor(Color.RED);
}
invalidate();
}
До сих пор цвет работает на интерактивном режиме, но как только он переходит в режим окружающей среды и обратно в интерактивном режиме, цвета не работают, и я знаю, что мой код не работает. Мне интересно, как бы я исправил свой код, чтобы он вернулся к цвету в интерактивном режиме.
Вы забыли задать вопрос. – 323go