Android で標準外のものを実装したい。
WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY
すべての上に透明なシステム オーバーレイ ( ) を作成しGLSurfaceView
(その後、キャンバスに変更しました)、その上に何かを描画しようとしています。
問題は、透明なレイヤーをその下にある他のものとブレンドしようとすると、Android が非常に遅くなることです。この操作が遅くなることはわかっていますが、非常に遅いです。多かれ少なかれパワーデバイスでテストしました。
いくつかの事実と観察:
- オーバーレイ ビューがフルスクリーンです
- オーバーレイに何も描画しないのにシステムが遅くなる
- 私の Acer Iconia タブ (10 インチ) は、Droid X よりもはるかに遅く実行されます (ブレンドするピクセルが多いか、新しいレンダリング パイプラインか?)
- 透明なPNGで静的を使用する
ImageView
と、Androidは問題なくブレンドします。なんで?Android はフレームごとに何をブレンドするかをチェックしますか? - タブレットでハードウェア アクセラレーションを有効にしても効果がない
私の質問: どうにかして最適化することは可能ですか? ビューの背景を null に設定しましたが、効果はありませんでした。
Android 4.0 は 3.2 と同じくらい遅くなりますか?
ホーム画面にシステム オーバーレイをブレンドすると、特に遅くなります。なんで?
私が間違ったことを書いていて、指定された目的以外に API を使用しているとは言わないでください。私はすでにそのことを認識しています。