2013-02-19 8 views
5

OpenGLRendererというエラーが表示されます。"Bitmap too large to be uploaded into a texture."私はこのエラーに精通しており、画像を保存する必要があることを知っています。2048 pixelsビットマップから大きなエラーは画像サイズの約2倍です。

しかし、特定の携帯電話のSamsung Galaxy Nexusでは、実際の画像サイズの2倍の画像サイズが報告されています。

私の画像はdrawableフォルダにあり、サイズは2048x95です。私はアプリを実行し、ディスプレイにその画像を追加しようとすると、私は悪名高いエラーを取得する:

Bitmap too large to be uploaded into a texture (4096x190, max=2048x2048)

できますか?

答えて

5

画像がドロウアブルフォルダにある場合、画像はデバイスに応じて適切な濃度にスケーリングされます。これは、mdpiデバイスの場合、イメージは適切なサイズになりますが、hdpi、xhdpi、およびxxhdpiの場合、イメージが思ったよりもはるかに大きく、ldpiデバイスではイメージが小さくなることを意味します。

イメージをGalaxy Nexusのように縮尺させたくない場合は、それをdrawable-xhdpiフォルダに置きます。

+2

'-nodpi'は、glテクスチャのような濃度に依存しない画像にとっては、より良い選択肢かもしれません。また、 'BitmapFactory'をロードしている場合、' inScaled'パラメータをfalseに設定することもできます。 – Jave

+0

OpenGLで彼のビットマップを使用しようとしていたなら、 '-nodpi'は本当に良いでしょう。私は2048px以上でビットマップをロードするとOpenGLを使用しているので、OpenGLRendererエラーが発生するので、彼がやっていることは分かりませんでした。 – MCeley

+0

ありがとうございましたJave、私は似たようなエラーを受けていて、inScaledのパラメータが私を助けました。 – Soham

関連する問題