-
|
创建 TextBlob 以及绘制文本传入的 fontSize 都是 px 单位。 iPhone 11 scale: 2.0 我看了下 pag 的代码,也没有发现有啥特殊处理。 |
Beta Was this translation helpful? Give feedback.
Answered by
domchen
Dec 24, 2025
Replies: 2 comments
-
|
字体这种好像就是需要自己换算一下size,乘以屏幕的scaleFactor/pixelRatio就行。引擎始终是只按物理像素点进行渲染的。视图上开启contentScaleFactor这种是扩大了引擎渲染的画布分辨率。 |
Beta Was this translation helpful? Give feedback.
0 replies
Answer selected by
domchen
-
|
扒了下 openharmony/ace_ace_engine 代码,参考写了个转换的辅助函数。这样都用统一单位的就好了。
#include "UnitConverter.hpp"
#include "SystemProperties.hpp"
namespace kk::utils {
float vp2px(float vp) {
auto density = SystemProperties::Instance().density;
return vp * density;
}
float px2vp(float px) {
auto density = SystemProperties::Instance().density;
return px / density;
}
float fp2px(float fp) {
auto fontScale = SystemProperties::Instance().fontScale;
return fp * fontScale;
}
float px2fp(float px) {
auto fontScale = SystemProperties::Instance().fontScale;
return px / fontScale;
}
} // namespace kk::utils |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
字体这种好像就是需要自己换算一下size,乘以屏幕的scaleFactor/pixelRatio就行。引擎始终是只按物理像素点进行渲染的。视图上开启contentScaleFactor这种是扩大了引擎渲染的画布分辨率。