2012-03-01 13 views
3

私のアプリは、ハードウェアアクセラレーション(clipPath、drawPicture)でサポートされていないキャンバスメソッドを使用しているため、ハードウェアアクセラレーションを有効にしません。しかし、私は例外のような例外レポートを得るようになった:android.view.GLES20Canvas.drawPicture(GLES20Canvas.java:895)Android:アプリケーションで強制的にハードウェアアクセラレーションを使用していますか?

これを調べると、ハードウェアアクセラレーションを強制的に設定するオプションがあります。「gpuのレンダリングを強制し、アプリケーションで2d harware acceleartionを使用する」。 したがって、私はmanifest.xmlに<application android:hardwareAccelerated="false">を追加しましたが、強制的なGPUレンダリング設定がチェックされてもクラッシュします。

私のアプリケーションがハードウェアアクセラレーションを強制的に使用されないようにするにはどうしますか?

答えて

3

[表示レベル]オプションがthe dev guideの操作を使用しているビューでは無効にします。設定が強制的にアプリに強制される方法によって他のオプションが崩れることが予想されます。

myView.setLayerType(View.LAYER_TYPE_SOFTWARE, null); 

このリンクでは、ハードウェアアクセラレーションを検出して不平を言う方法について説明していません。

View.isHardwareAccelerated()は、ハードウェアアクセラレータウィンドウにビューが添付されている場合はtrueを返します。

キャンバス

加速ハードウェアであればCanvas.isHardwareAccelerated()がtrueを返します
0

Androidの世界ではセキュリティが重要であり、システム設定でのユーザーの設定を無視してもAndroidのセキュリティは保護されません。ダイアログボックスを介してユーザーに通知して、なぜハードウェアアクセラレーションがあなたのアプリケーションで機能しないのかを教えて、設定に簡単にアクセスできるようにすることをお勧めします。

関連する問題