开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

楼主: 一心如旧
收起左侧

[界面设计资源] 高分屏DPI解决方案及原生简洁UI

[复制链接]
结帖率:100% (1/1)
发表于 2021-10-30 20:46:59 高大上手机用户 | 显示全部楼层   浙江省台州市
感谢楼主分享!支持一下!
回复 支持 反对

使用道具 举报

签到天数: 17 天

发表于 2021-1-2 09:25:14 | 显示全部楼层   浙江省绍兴市
感谢分享,很给力!~
回复 支持 反对

使用道具 举报

结帖率:100% (9/9)

签到天数: 2 天

发表于 2020-12-25 17:35:50 | 显示全部楼层   广东省江门市
本帖最后由 hmyroot 于 2020-12-25 17:37 编辑

支持
回复 支持 反对

使用道具 举报

结帖率:100% (9/9)

签到天数: 2 天

发表于 2020-12-25 17:35:07 | 显示全部楼层   广东省江门市
最新版Win10改变了DPI路径
  
判断 (zc表_打开或判断值名称是否存在_加强版 ( #HKEY_CURRENT_USER, “Control Panel\Desktop\WindowMetrics”, “AppliedDPI”) = 0)
' 字体样式.字体名称 = “微软雅黑”
DPI = zc表_取zc表整数型_加强版 ( #HKEY_CURRENT_USER, “Control Panel\Desktop\WindowMetrics”, “AppliedDPI”, 96)  ' win10
' 字体样式.字体名称 = “宋体”
DPI = zc表_取zc表整数型_加强版 ( #HKEY_CURRENT_USER, “Control Panel\Desktop”, “LogPixels”, 96)  ' win7
缩放率 = DPI ÷ 96

回复 支持 反对

使用道具 举报

结帖率:100% (1/1)

签到天数: 7 天

发表于 2020-11-1 21:30:38 | 显示全部楼层   广东省江门市
好东西 值得分享
回复 支持 反对

使用道具 举报

结帖率:100% (5/5)

签到天数: 11 天

发表于 2020-9-25 15:00:58 | 显示全部楼层   浙江省温州市
挺好 谢谢 分享
回复 支持 反对

使用道具 举报

结帖率:100% (6/6)
 楼主| 发表于 2020-9-23 20:40:22 | 显示全部楼层   四川省成都市

更新补充

很多朋友表示源码看起来太复杂,实际上搞清楚他的原理就很好理解

1.获取DPI

取zc表当前DPI 取数值zc项 (3, "Control Panel\Desktop\WindowMetrics\AppliedDPI", )

2.获取缩放比

将取到的DPI(int)除以96就是缩放比

如果系统没有设置缩放,则返回96,对应的是100%,其他对应值如下:

返回值 缩放比
96 100%
120 125%
144 150%
192 200%

以上比例是系统默认提供的,如果是自定义比例,用获取到的DPI除以96即可得到对应的显示比例

3.对界面进行适配

1.窗口适配(窗口宽度 高度乘以缩放比,顶边 左边减去缩放后的高 宽减去原来高 宽再除以2)
2.界面控件布局适配(控件宽度 高度 顶边 左边乘以缩放比,如果有字体及图片请看3 4条)
3.图片适配(同上,需要注意的是,如果考虑兼容150%+ 图片一定分辨率要高 而且自身要进行缩放,不然会模糊)
4.字体适配(字体大小乘以缩放比)

4.控件的进一步适配

有的控件自身还有一些控件需要单独的适配,下面给出一些例子,希望能得到大家的补充

组合框
高度 = 高度 × 缩放率 × 组合框.取项目数 ()不然下拉列表显示不完整

超级列表框

.计次循环首 (超级列表框.取列数 (), n)
超级列表框.置列宽 (n - 1, 超级列表框.取列宽 (n - 1) × 缩放率)
.计次循环尾 ()

更多的暂时还没有一一的进行测试,这个方法是目前适配可视最优的方案
但是使用的循环寻找组件,代码可能比较繁重,希望大佬能根据这个思路
使用更优的方案来进行全局适配
声明:某些代码参考了论坛前辈,进行整合及优化,只为学习和分享

码字不易,可以给个好评吗?

回复 支持 反对

使用道具 举报

结帖率:100% (7/7)

签到天数: 14 天

发表于 2020-9-23 09:24:46 | 显示全部楼层   湖北省武汉市
感谢分享,很给力!~
回复 支持 反对

使用道具 举报

结帖率:100% (3/3)

签到天数: 13 天

发表于 2020-9-23 08:23:42 | 显示全部楼层   山东省青岛市
学习一下算法,感谢分享
回复 支持 反对

使用道具 举报

结帖率:100% (11/11)

签到天数: 10 天

发表于 2020-9-23 04:33:09 | 显示全部楼层   河北省秦皇岛市
新技能已get√
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表