2013-02-19 70 views
5

我收到臭名昭着的OpenGLRenderer錯誤"Bitmap too large to be uploaded into a texture."我熟悉錯誤並知道我需要保持我的圖像低於2048 pixels以避免它。位圖大錯誤是抱怨圖像大小的兩倍

但是,在一款特定的手機中,三星Galaxy Nexus報告的圖像尺寸是實際圖像尺寸的兩倍。

我的圖像位於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 2013-02-19 21:50:25

+0

是的,'-nodpi'確實會更好,如果他試圖在OpenGL中使用他的位圖。我不確定這是他在做什麼,因爲如果你在2048px以上加載任何位圖,那麼你會得到'OpenGLRenderer'錯誤,因爲系統使用OpenGL進行繪製。 – MCeley 2013-02-20 13:40:36

+0

感謝Jave,我得到了一個類似的錯誤,inScaled參數幫了我很多。 – Soham 2013-04-22 15:22:30