免責聲明:這是一個奇怪的問題,只發生在Kindle Fire(到目前爲止)。Kindle Fire在某些時候更改屏幕分辨率...
涉及的技術:Android SDK,Eclipse,LibGDX。
我有一個相對簡單的應用程序運行LibGDX。 LibGDX的工作方式是讓OpenGL線程儘可能多地調用Create()(一次)和Render()(這樣你就可以完成渲染了)。所以當你初始化設備時,你的「Create()」方法被調用,然後當OpenGL表面被初始化時(所有這些都是自動發生的),你的Render()開始被調用。
如果OpenGL上下文丟失,被銷燬等,您的Resize(width,height)方法由LibGDX調用。
到目前爲止。太好了。
現在我遇到了Kindle Fire的一個奇怪問題,那裏的東西看起來幾個像素關閉或「切割」。 Kindle Fire在屏幕底部有一個「軟條」(20像素),您無法隱藏或跳過,因爲該設備沒有物理按鈕,所以這是「確定的」。預計你會觸摸這個軟吧,並得到一個更大的酒吧回去,回家等。根據亞馬遜,這個酒吧不能被刪除。 (並非100%清楚,但沒有人找到方法 - 這不會違反亞馬遜規則)。我見過的唯一一個刪除的應用是亞馬遜視頻播放器,僅用於從亞馬遜雲端流式傳輸的視頻。所以你可以看到,似乎沒有辦法「永久」隱藏該欄。
因此,如果酒吧在那裏,您的真實屏幕狀態不是硬件分辨率1024x600(橫向),而是1024x580。所以我加了一些日誌記錄,以我的方法,看看發生了什麼事情,以及與此感到吃驚......(記得創建(),渲染()和調整()方法):
12-23 15:17:04.119: I/myapp(19921): SCREEN HEIGHT AT CREATE(): 600
[snip other unrelated log stuff]
12-23 15:17:04.673: I/myapp(19921): SCREEN HEIGHT AT RENDER() LOOP: 600
[snip other unrelated log stuff]
12-23 15:17:04.705: I/myapp(19921): MyApp - Resize() Called.
12-23 15:17:04.705: I/myapp(19921): SCREEN HEIGHT AT RENDER() LOOP: 580
於是,屏幕上已由Kindle Fire「調整大小」,「在某個時間點」。
有沒有人遇到過這樣的事情?
這是一個截圖(注意頂部的黑色條,這不是我加的!)。原諒我模糊圖像,但這是客戶的項目,我不能「透露」任何東西。
有趣的部分開始時有時,酒吧就不會在那裏,應用程序將看樣下(同樣,對於SRY模糊)。注意最上面一欄是多麼的不存在...
在這兩個鏡頭的仔細檢查,你可以說底部(這應該是一樣的),是不是。 kindle正在做奇怪的事情。
任何想法?
這些資產最初被打包爲1024x600,但我們已經改變了(現在580),並假設視口現在是1024x580,但我想知道是否有人找到更好的方法來處理這個廢話?:)
note:我們在清單中有android:theme =「@ android:style/Theme.NoTitleBar.Fullscreen」。什麼都不做。
在此先感謝。
我無法幫助Kindle問題本身,但resize()方法可能會在任何時間點被調用,並且與上下文丟失無關。上下文丟失通過對resume()的調用來指示。 – badlogic 2012-01-03 09:38:11
@badlogic嗨馬里奧;)(格里佐爾在這裏)。是的,我們正在等待resize(),但這似乎是Kindle Fire問題(由其他人報告)。亞馬遜在那裏做了一些令人討厭的東西......:S感謝你' – 2012-01-04 14:30:49