引き続きアンドロイドしていた。CanvasにdrawRectしたときにカラーが適応されなくてだいぶ悩んでいたけど、なんのことはない、Paintのコンストラクターを勘違いしていただけだった。
canvas.drawRect(0, 0, 100, 100, new Paint(Color.WHITE)); // ×
final Paint p = new Paint();
p.setColor(Color.WHITE);
canvas.drawRect(0, 0, 100, 100, p);
PaintのコンストラクターがIntを渡せるようになっているんだけど、このIntはカラー値じゃなくてflagsとのこと。AWTと違ってAndroidのColorクラスはIntのカラー値を生成するユーティリティ的に振舞っているみたい。処理負荷を重視してColorをインスタンス化せずにIntにしたのかなぁ。Javaも型の別名つけられたらこういうミスを減らせるかなぁ。混乱の方が大きいかしら。
Color = Integer;