AppDelegate.cpp----bool AppDelegate::applicationDidFinishLaunching()
auto glview = director->getOpenGLView();
glview->setDesignResolutionSize(designResolutionSize.width, designResolutionSize.height, ResolutionPolicy::SHOW_ALL);
enum class ResolutionPolicy
{
EXACT_FIT,
NO_BORDER,//無黑邊,高寬均縮放至全屏
SHOW_ALL,//全顯示,高寬至多一個有黑邊,例如16:9在ipad顯示,則左右無黑邊,上下遊黑邊
FIXED_HEIGHT,//高适配(寬度方向(橫向)可能顯示不全)
FIXED_WIDTH,//寬适配(高度方向(豎向)可能顯示不全)
UNKNOWN,
};
除去以上引擎設計好的适配方式,在實際項目中,适配的需求往往比較複雜,比如有些部件可以随着螢幕縮放,有些則不需要縮放,那麼這個時候就要用到以下設計.
例:貼着螢幕四角的子產品,比如搖杆,技能按鈕,很多時候不需要縮放,但要保證在四角,這個時候在設定子產品位置的時候就要擷取螢幕顯示的大小去設定。
界面背景需要填滿全屏?可以做一張4:3的大圖,在ipad上正常顯示,在手機上使用寬适配,顯示中間區域。
根據不同子產品的要求選用不同的縮放和設定坐标,進而實作總體的适配需求。
PS:由于現在市面上出現了很多安卓手機有虛拟按鍵,導緻原本16:9的螢幕比例發生了變化,導緻顯示界面和觸摸事件的坐标會發生錯亂,是以螢幕适配至關重要。