zoukankan      html  css  js  c++  java
  • UMG设置组件自适应居中或靠边

    转自:http://aigo.iteye.com/blog/2297430

    比如你的UI中有些组件需要居中显示,有些需要始终在右上角并且与上边框和右边框保持固定的距离等等,对于这种需要动态适应屏幕分辨率的UI组件,有两种设置方式:

    1,直接编辑组件的属性Anchors


     

    2,代码控制

     
    ULoginWidget* LoginUI = NULL;   //创建UI的逻辑省略  
      
    if (UImage* backImg = Cast<UImage>(LoginUI->GetWidgetFromName("ImgBackground")))  
    {  
        //获取屏幕大小和中心点  
        const FVector2D ViewportSize = FVector2D(GEngine->GameViewport->Viewport->GetSizeXY());  
        const FVector2D  ViewportCenter = FVector2D(ViewportSize.X / 2, ViewportSize.Y / 2);  
      
        //假设背景图片的大小原尺寸大小是1920x1080,下面是通过高宽比来计算当前分辨率下的位置  
        int imgWidget = 1920 * ViewportSize.Y / 1080;  
        int posX = ViewportCenter.X - imgWidget / 2;  
      
        //设置背景图片的相对X、Y坐标,注意:这里假设Anchors属性默认的,即X、Y相对屏幕左上方顶点位置  
        backImg->SetRenderTranslation(FVector2D(posX, 0));  
    }  

    如果需要居中的UI组件很多,可以将居中的UI放在一个容器里,然后只对这一个容器进行居中即可。

    这里假设直接将RootWidget居中:

    LoginUI->GetRootWidget()->SetRenderTranslation(FVector2D(X, Y));  

    另外,通过代码设置比例,需要在代码中考虑当前设备的分辨率,如果不想考虑,将屏幕尺寸设成固定值:

    这种比较麻烦,建议还是第一种

  • 相关阅读:
    java框架--Spring XML 配置基础(一)
    工具的使用与安装--oracle卸载
    java web--jsp(4)
    java web--JSP(3)
    洛谷 P3384 【模板】轻重链剖分
    洛谷 P1103 书本整理
    洛谷 P1977 出租车拼车
    洛谷 P1129 [ZJOI2007]矩阵游戏
    洛谷 P2319 [HNOI2006]超级英雄
    洛谷 P1640 [SCOI2010]连续攻击游戏
  • 原文地址:https://www.cnblogs.com/sevenyuan/p/7728050.html
Copyright © 2011-2022 走看看