6

私が持っているカスタム ビューでは、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 でテストを実行しています]

4

1 に答える 1

0

最初にビットマップのサイズを変更してみてください。createBitmap を使用します。

于 2012-08-07T15:38:07.543 に答える