Libgdx中不同分辨率圖片替換的解決方案

    最近做產品開發,考慮到以後會在pad和手機平臺發佈,所以圖片要用到不同的尺寸,比如做HD版本。但是如果在程序中直接替換圖片而不影響到功能呢?

    Libgdx的相關資料找了很久,發現已經有針對IOS系統Retina的解決方案,只需要在配置文件中填寫縮放比例即可,正式我們想要的。但是仔細看了一下,應該是第三方IOS類庫實現的功能,那在Android下如何解決呢?

    解決這個問題首要保證的就是Stage的尺寸是不能變的,因爲程序中大量用到座標參數,一旦改變就會引發很多關聯問題。經過初步研究,我發現本地圖片如果放大一倍,其實只是每個Texture佔了更大的面積,如果能把圖片顯示時再縮小一倍就能解決問題。當屏幕尺寸是2倍的情況,那圖片就相當於沒有縮小,也就是我們預期的效果。我們的系統中基本上所有圖片都是利用TextureRegion的封裝,並沒有直接去draw texture/sprite的方式,所以這縮小的工作就定在TextureRegion裏面去實現。仔細分析了源代碼,我發現直接在getRegionWidth和getRegionHeight上做文章即可,這裏修改源碼讓應有的圖片寬度進行相應比例的縮小,這樣最終顯示就能達到放大的本地圖片按正確比例顯示。

    只是在圖片顯示上做縮放調整,應該對功能影響比較小,這個方案初步測試通過,實際使用還有待繼續考證。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章