duilib适配高分屏(高DPI适配)
duilib适配高分屏
- 高分屏(高DPI)适配
- 适配原理(duilib)
- 适配例子
高分屏(高DPI)适配
随着PC设备高分屏的越来越普及,PC端客户端软件也需要适配一下高分屏幕。在没有专门适配高分屏的情况下,普通软件界面看起来尺寸很小,操作体验大打折扣。Win10上微软提供了系统级的高分屏适配,但是缺点就是适配会导致软件上字体模糊、图片锯齿等。为了提高PC软件在高分屏上的使用体验,需要软件专门适配一下。
适配原理(duilib)
软件高分屏适配原理,就是禁用系统的DPI适配,自己检测系统DPI变化,然后等比缩放软件界面尺寸和界面元素尺寸,主要是界面上的字体和图片。duilib做为一个封装好的UI库,提供动图布局支持和资源管理器支持,所以适配DPI的时候只需要把布局计算、字体加载、图片加载的地方做好DPI适配即可。
1、界面布局适配:GetFixedXY、GetPadding、GetFixedWidth、GetFixedHeight、GetMinWidth等布局计算接口;
2、图片适配:PaintManager里面提供重建字体的接口ReloadAllDrawInfos,重建时会重新加载TDrawInfo,TDrawInfo的Parse接口里面判断DPI加载对应的图片资源;
3、字体适配:PaintManager里面提供重建字体的接口ReloadAllFonts,在里面可以根据DPI重建字体资源;
适配例子
以上例子的完整源码可以通过开源平台下载:
github:https://www.github.com/qdtroy/DuiLib_Ultimate
码云:https://www.gitee.com/qdtroy/DuiLib_Ultimate
学习交流QQ群:261851826、261675375、 199950533
有问题可以联系QQ:656067418或者邮件 qdtroy@qq.com
duilib适配高分屏(高DPI适配)相关推荐
- QT自动适配高分屏的解决方案
使用QT在开发桌面程序的时候,很多时候需要涉及到高分屏的适配问题.如果之前没有做过高分屏适配可能会遇到很多问题,这里提供一套方便的QT高分屏适配方案供大家参考.在适配高分屏的时候需要考虑两个要求: 1 ...
- 关于DuiLib高DPI适配问题
在某些情况下,虽然在高DPI的设置下DuiLib能正常的缩放,但是缩放后的显示效果很不好,文字图片显示模糊,影响用户体验,经过多次试验,解决办法如下: 在工程文件设置中,对相应工程做属性设置: 一 在 ...
- HMI-7-[高分屏支持]:Qt 适配高分屏
基于Qt的汽车仪表模拟 照例,还是先上效果图,宣传哈哈哈哈哈 今天学到一个新东西,就是Qt对高分屏的支持,即高DPI的支持,有个Qt写的软件在老板的SB2上运行出现了显示异常,因为老板的电脑分辨率是3 ...
- PyQt5适配高分屏的方法
1.高分屏带来的显示问题 高分屏指的是显示屏的单位面积像素较高的屏幕,最后换了一个thinkbook笔记本,屏幕的dpi为144,原来的写的pycom串口助手(https://blog.csdn.ne ...
- react手机机端css_react工程搭建系列之---移动端适配与antd-mobile高清适配方案
一.逻辑像素(css像素)与物理像素(设备像素) 机型 逻辑像素 物理像素 Scale Factor iphone 3GS 320 x 480 320 x 480 1x iphone 4 320 x ...
- 2k,4k 高分屏显示器DPI缩放检测完整版
最近在做高DPI显示器的适配,由于很多用户不知道自己的显示器是否有dpi缩放.于是做了这么个小工具,专门用于系统dpi缩放参数的检测. 程序下载:链接: https://pan.baidu.com/s ...
- 不是吧,谷歌浏览器也有问题?连CSND都没有逃过的厄运?两个元素之间明明没有间距,哪来的迷之白线?高分屏的DPI设置引发的血案
从所周之,谷歌浏览器应该是最靠谱的浏览器之一.但是偶尔会发现一些迷之白线(间距),换一台机器或者手机,就消失了,就没有放在心上. 在写这编文章,发表的时候,发现连CSDN都没有逃过这个厄运,请看下图. ...
- ubuntu20.04使用微信,附高分屏适配方法
ubuntu20.04使用微信 在知乎上看到一种比较好的在Ubuntu上使用微信的方法,使用的是优麒麟封装的wine. 作者:古德曼汽车工业 链接:https://zhuanlan.zhihu.com ...
- 高分屏、分辨率、DPI、PPI,及 Qt 处理高分屏
简 述: 高分屏.DPI.PPI.屏幕分辨率的一些基本知识,以及使用 Qt 处理高分屏的一些方法集合归纳. 文章目录 基础 方案 Ref 本文初发于 "偕臧的小站",同步转载于此. ...
最新文章
- 什么是XLNet中的双流自注意力
- 中专学校的计算机教什么,中专计算机学校
- Linux常用命令全名
- 进口配额管理和出口配额管理_SAP采购管理模块中的quot;配额协议quot;应用详解...
- Linux基础优化方法(一)———优化命令提示符和yum源仓库
- 删除某个时间段之前的文件
- 02-图像的几何变换
- c++ 1:非MFC工程使用MFC库时的问题及解决办法(如果要用CString或者提示windows头文件重复包含)...
- python 基础之文件
- UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush)...
- 国家中长期教育改革和发展规划纲要(2010-2020年)
- [CareerCup] 12.6 Test an ATM 测试一个自动取款机
- Kettle Spoon入门学习
- 三次hermite插值多项式例题_hermite插值例题
- 中英文状态的符号转换
- 职业规划-IOS开发工程师(待完善)
- 云原生时代,如何保证容器镜像安全?
- Java实现交叉表_Sql交叉表简单实现 | 学步园
- 关于localhost404打不开
- mybatis实现动态模糊查询