読者です 読者をやめる 読者になる 読者になる

やらなイカ?

たぶん、iOS/Androidアプリの開発・テスト関係。

Android 4.2のCanvas#drawRect()が描画してくれないケース

android.graphics.RectFのClass Overviewには、

Note: most methods do not check to see that the coordinates are sorted correctly (i.e. left <= right and top <= bottom).

と書かれていますが、Android 4.2のCanvas#drawRect()はまさにこれに該当し、例えば left > right の場合、矩形を描画してくれません。

確認したのは下記機種です。

  • Galaxy Nexusの4.1.1では left > right でも描画され、4.2.2では描画されませんでした
  • Nexus 7(4.2)でも描画されませんでした

こんな気持ち悪いコードは書かないと思うのですが。*1

こんなケースがあると、単純に画面巡回してスクリーンショットを単純に画像比較する形の自動テストもあって損はない気がします。*2

*1:今回は某国某社から引き継いだソースでやられました

*2:そんな気はしていつつ、ありませんでした。今回の発見は目視。