26

次のコードスニペットがあります。これは、キャンバスの現在の変換行列を使用して一連の境界を変換します。

    final RectF bounds = renderer.computeBounds
    activeCanvas.getMatrix().mapRect(result, bounds);
    return bounds;

ただし、最新のAPIレベル(16)では、次のような警告が表示されます

The method getMatrix() from the type Canvas is deprecated

API16Diff仕様で確認されています。

これは問題ありませんが、 Canvas.getMatrix()の現在のドキュメントでは、非推奨については言及されておらず、代替手段も提供されていません。回避策として、この警告を単に抑制しますが、これを行うための新しく改善された(tm)方法がどのように見えるかを本当に知りたいです。

4

3 に答える 3

9

マトリックスは、キャンバスではなくビューによって処理されるようになりました。残念ながら、これに関するGoogleの決定を説明することはできませんが、2つの方法でまったく同じことを再現できるはずです。

于 2012-11-06T01:02:50.627 に答える
9

私は、hardwareAccelerationが有効になっている場合のgetMatrixの問題のため、マトリックスがビューによって処理されるようになったとkourayが言ったように、非推奨になったと思います。

于 2012-11-09T12:43:15.077 に答える
4

ビューにアクセスできない場合:

この問題を回避するには、ほとんどの場合、マトリックスを取得して変更してからマトリックスを再設定するのではなく、canvas.scale()、canvas.translate()などを使用して変換を適用できます。

Sandeepによって参照されているように、hardwareAccelerationが有効になっている場合のgetMatrixに関するGoogleの 問題から。

于 2015-04-13T17:20:09.673 に答える