私が持っているカスタム ビューでは、2048px より広いソース ビットマップで Canvas.drawBitmap を使用しています。これはもちろん、ハードウェア アクセラレーションが有効になっている場合に問題を引き起こし、drawBitmap が呼び出されるたびに LogCat が「W/OpenGLRenderer(4968): ビットマップが大きすぎてテクスチャにアップロードできません」というメッセージを吐き出します。
これを回避するためにsetLayerType(View.LAYER_TYPE_SOFTWARE, null)
、私は自分のビューを呼び出してみました。唯一の問題は、それが役に立たないように見えることです。アプリを実行しようとすると、LogCat は引き続き警告を表示し、何も描画されません。
なぜそうなのか理解できません。Android サイトのこの記事には、次のように明確に記載されています。
次のコードを使用して、実行時に個々のビューのハードウェア アクセラレーションを無効にすることができます。
myView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
私が間違っていることはありますか?Android が setLayerType 呼び出しを尊重しないのはなぜですか?
[重要な場合: Android 3.2 を実行している Samsung Galaxy Tab 10.1 でテストを実行しています]