美文网首页
SlateApplication学习

SlateApplication学习

作者: handBag | 来源:发表于2018-04-27 22:46 被阅读0次

1 一些基本函数的学习

FSlateApplication在构造函数里,会调用一个SetupPhysicalSensitivities函数.

const float DragTriggerDistanceInInches = FUnitConversion::Convert(1.0f, EUnit::Millimeters, EUnit::Inches);
FPlatformApplicationMisc::ConvertInchesToPixels(DragTriggerDistanceInInches, DragTriggerDistance);
#if PLATFORM_DESKTOP
    DragTriggerDistance = FMath::Max(DragTriggerDistance, 5.0f);
#else
    DragTriggerDistance = FMath::Max(DragTriggerDistance, 10.0f);
#endif

    FGestureDetector::LongPressAllowedMovement = DragTriggerDistance;

第一句作用是将1mm变成一英寸

第二句是根据平台将对应的英寸值转为像素数量

ConvertInchesToPixels函数,

执行过程
1 先获取真正的dpi数据

int32 ScreenDensity;
EScreenPhysicalAccuracy Accuracy = GetPhysicalScreenDensity(ScreenDensity);

2 GetPhysicalScreenDensity 做了一层缓存,保证只计算一次

CachedPhysicalScreenData = true;
CachedPhysicalScreenAccuracy = 
FPlatformApplicationMisc::ComputePhysicalScreenDensity(CachedPhysicalScreenDensity);

3 ComputePhysicalScreenDensity函数里
3.1 首先从配置文件里判断有没有DeviceScreenDensity选项
3.2 如果有,则直接返回,否则下一不
3.3 通过下面的函数
AndroidThunkCpp_GetMetaDataString(TEXT("ue4.displaymetrics.dpi"));
调用Java里的函数
3.4 核心函数如下:

if (key.equals("ue4.displaymetrics.dpi"))
{
  DisplayMetrics metrics = new DisplayMetrics();
  if (android.os.Build.VERSION.SDK_INT >= 17)
  {
    getWindowManager().getDefaultDisplay().getRealMetrics(metrics);
  } else {
  // note: not available so get what we can
  getWindowManager().getDefaultDisplay().getMetrics(metrics);
  }
            
  }

此函数作用就是返回水平方向的dpi和竖直方向的dpi,和与标准dpi的关系,标准dpi是160

4 最终值会保存在
FGestureDetector::LongPressAllowedMovement

相关文章

  • SlateApplication学习

    1 一些基本函数的学习 FSlateApplication在构造函数里,会调用一个SetupPhysicalSen...

  • SlateApplication中的事件处理一

    1 FSlateApplication是继承自FGenericApplicationMessageHandler接...

  • 学习学习学习

    第三天了,连续三天,早上睁眼开始,看视频,做课件,连续作业,直到晚上十二点才睡觉。吃饭不规律,想起来就吃,感觉不饿...

  • 学习学习学习

    23岁的我,才真正明白,什么是学习,什么是努力,努力和不努力真的不同,就好比同样是一篇稿子,我用一周背下来,有的人...

  • 学习学习学习!

    妈妈总是让我学习,我只能用装当办法。 方法一: 方法二: 方法三: 方法四: ...

  • 学习学习学习

    001.今天看财富自由之路看了第二遍,而且看了一半,算是完成任务很开心。中间有想放弃的念头,坚持看完。眼睛痛,一直...

  • 学习学习学习

    马自达为什么坚持高压缩比自吸

  • 学习!学习!学习!

    学习的痛苦是暂时的 没有学到的痛苦是永恒的 因为学习而特别充实的一天 很踏实 ~~~~ 2015.11.28.阴天...

  • 学习!学习!学习!

    无数次想要去逃离,可这封闭的世界根本出不去。你没有什么可以抛弃、只能咬着牙带着面具微笑的活下去。 没有那个人、他也...

  • 学习学习学习!

    昨天和今天两个上午,都在学习新媒体运营,学习的过程中心里只有一个想法:这也太套路,太功利了吧。可真应了那句话...

网友评论

      本文标题:SlateApplication学习

      本文链接:https://www.haomeiwen.com/subject/cntwlftx.html