私のアプリでは、タッチイベントをキャプチャして処理することで、画面上に描画することができます。さらに、私のアプリケーションでは、Canvas.drawPictureやハードウェアアクセラレーションでサポートされていない他のメソッドを使用しています。Android:ハードウェアアクセラレーションに関する奇妙な問題?
一部のICSデバイスでは、強制的にハードウェアアクセラレーションを強制的に設定するオプションがあります。「gpuを強制的に実行し、アプリケーションに2dハーベスタを使用する」これを有効にすると、エラー:android.view.GLES20Canvas.drawPicture(GLES20Canvas.java:895)
でアプリケーションがクラッシュします。したがって、このメソッドを使用するビューで、ハードウェアアクセラレーションを明示的に無効にしました。
ただし、この方法でハードウェアアクセラレーションを無効にすると、図面のパフォーマンスに影響を与え、描画が「Motionfeature.ACTION_MOVE生成されます。これは、「強制加速」設定がオンになっているかどうかに関係なく、3.0以上のすべてのデバイスで発生します。
私は図面のアシスタントであったビューのレイヤータイプに何かがあり、View.setLayerType(...)
を呼び出すとこれが失われていることを示しています。 View.setLayerType(...)
を呼び出す前に、View.getLayerType()はLAYER_TYPE_NONEを評価します。
ハードウェアアクセラレーションを明示的に防止する方法については、私のタッチ入力を支援していたものをそのまま残しておいてください。
私は、このような提案を持っていないが、あなたは(http://code.google.com/p/android/issues/list)[バグとして報告この]かもしれませんが、文書化の方法はへのハードウェアアクセラレーションを回避すると、この副作用があります。 –