引き続きアンドロイドしていた。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;


[ 編集 | 凍結 | 差分 | 添付 | 複製 | 名前変更 | リロード ]   [ 新規 | 一覧 | 単語検索 | 最終更新 | ヘルプ ]
Last-modified: 2011-03-29 (火) 08:04:12 (3735d)