dpi

dpi 、 dip 、分辨率、屏幕尺寸、px、density 关系以及换算

白昼怎懂夜的黑 提交于 2020-04-06 21:53:08
一、基本概念 dip : Density independent pixels ,设备无关像素。 dp :就是dip px : 像素 dpi :dots per inch , 直接来说就是一英寸多少个像素点。常见取值 120,160,240。我一般称作像素密度,简称密度 density : 直接翻译的话貌似叫 密度。常见取值 1.5 , 1.0 。和标准dpi的比例(160px/inc) 分辨率 : 横纵2个方向的像素点的数量,常见取值 480X800 ,320X480 屏幕尺寸: 屏幕对角线的长度。电脑电视同理。 屏幕比例的问题。因为只确定了对角线长,2边长度还不一定。所以有了4:3、16:9这种,这样就可以算出屏幕边长了。 二、应用   在android里面,获取一个窗口的metrics,里面有这么几个值     metrics.density;      metrics.densityDpi;   densityDpi : 就是我们常说的dpi。   density : 其实是 DPI / (160像素/英寸) 后得到的值。是不是有点奇怪,因为我带了单位。。。这个涉及到后面一个比较重要的东西,后面再说。   从上面就看得出了,DPI本身的单位也是 像素/英寸,所以density其实是没单位的,他就是一个比例值。   而dpi的单位是 像素/英寸,比较符合物理上面的密度定义

Codeforces Round #631 (Div. 2) Dreamoon Likes Sequences

守給你的承諾、 提交于 2020-04-04 14:36:30
题面很短,别的博客也讲了就不说题意了。 做法: 异或是没有进位的加法,所以ai + 1的二进制最高位要大于ai的二进制最高位,才能满足ai递增,bi也递增的条件。呐这样的话,选了4,(5,6,7)就都不能选了,只能选比7大的数。 这样分析下来a数组最长也只有30,(2^30>1e9) 直接按照数字大小dp会TLE 思路角度1:换一个角度,我们把二进制最高位相同的看作一组,因为这一组内只能选一个数。 有点像分组背包。但是我们现在只看分组背包的方案数,所以就不用枚举每一组内的物品了。 dpij表示考虑到前i组,选了其中j组的方案数。 cnt[i]表示第i组有多少个 dpij += dpi-1j-1*cnt[i] 考虑要第i组 dpij += dpi-1j 考虑不要第i组 然后就可以了 我写的时候顺便空间优化了下 https://paste.ubuntu.com/p/YjzM6RmPWC/ 思路角度2:换一个角度,我们把二进制最高位相同的看作一组 dpi 表示以第i组为结尾的序列的方案数。 cnt[i]表示第i组有多少个 dpi += dpk * cnt[i] (k 从0枚举到i - 1) https://paste.ubuntu.com/p/vxPHns2YVJ/ 来源: https://www.cnblogs.com/AlexPanda/p/12631435.html

【C#】获取电脑DPI

心不动则不痛 提交于 2020-03-31 16:08:59
public static class DPIGeter { /// <summary> /// 获取DPI /// </summary> /// <param name="dpix"></param> /// <param name="dpiy"></param> public static void GetDPI(ref float dpix, ref float dpiy) { SetProcessDPIAware();//此处会忽视系统DWM虚拟化,不建议使用 IntPtr screenDC = GetDC(IntPtr.Zero); dpix = GetDeviceCaps(screenDC, LOGPIXELSX); dpiy = GetDeviceCaps(screenDC, LOGPIXELSY); ReleaseDC(IntPtr.Zero, screenDC); } /// <summary> /// 获取DPI缩放比例 /// </summary> /// <param name="dpiscalex"></param> /// <param name="dpiscaley"></param> public static void GetDPIScale(ref float dpiscalex, ref float dpiscaley) { int x =

SV通过DPI调用C

瘦欲@ 提交于 2020-03-14 15:41:24
Verilog与C之间进行程序交互,PLI(Programming Language Interface)经过了TF,ACC,VPI等模式。 使用PLI可以生成延时计算器,来连接和同步多个仿真器,并可以通过波形显示等调试工具。 通过PLI方式连接一个简单的C程序,需要编写很多代码,并理解多仿真阶段的同步,调用段,实例指针等概念。 PLI方式给仿真带来了额外的负担,为了保护Verilog的数据结构,仿真器需要不断的在Verilog和C之间复制数据。 SystemVerilog引入了DPI(Direct Programming Interface),能够更简洁的连接C,C++或者其他非Verilog的编程语言。 只要使用import声明和使用,导入一个C子程序,就可以像调用SystemVerilog中的子程序一样来调用它。 SystemVerilog和C语言之间传递的最基本的数据类型是int,双状态的32位的数据类型, 通过import声明定义C任务和函数的原型, 带有返回值的C函数被映射成一个systemverilog的函数(function), void类型的C函数被映射为一个systemverilog的任务(task)或者void 函数(function) 通过“DPI-C”引入的C函数, 可以直接在function中调用,但是只在该DPI被声明的空间内有效 ,

像素 dpi ppi 分辨率

我的未来我决定 提交于 2020-03-12 11:55:56
像素:图片上最小的点(单位色块) dpi/ppi 图片分辨率 dots per inch / pixels per inch 分别用于打印/图形显示 每英寸图像内的像素点个数 分辨率越高 就会越清晰 分辨率通常会表示为成 每一个方向上的像素数量,比如640x480等 。而在某些情况下,它也可以同时表示 成“每英寸像素”(pixels per inch,ppi)以及图形的宽度和高度 。比如72ppi,和8x6英寸。 ppi×w/h = 640 × 480 来源: https://www.cnblogs.com/liurenyu/p/12467996.html

C# 获取当前屏幕DPI

社会主义新天地 提交于 2020-03-05 15:15:59
上一篇博客《 C# 获取当前屏幕DPI 》,介绍了如何获取当前屏幕的DPI设置 本章主要介绍如何获取当前窗口所在屏幕的信息 当前屏幕信息 如果当前是单屏幕,可以直接获取主屏幕 var primaryScreen = Screen.PrimaryScreen; 如果当前是多屏,建议通过窗口句柄获取Screen信息 var window = Window.GetWindow(ExportButton);//获取当前主窗口 var intPtr = new WindowInteropHelper(window).Handle;//获取当前窗口的句柄 var screen = Screen.FromHandle(intPtr);//获取当前屏幕 获取屏幕高宽/位置 DpiPercent DPI转换比例常量,DpiPercent = 96; 为何DpiPercent为96 ?有一个概念“ 设备无关单位尺寸 ”,其大小为1/96英寸。比如: 【物理单位尺寸】=1/96英寸 * 96dpi = 1像素; 【物理单位尺寸】=1/96英寸 * 120dpi = 1.25像素; 关于WPF单位和系统DPI,可以参考 《WPF编程宝典》中相关章节 Screen.Bounds Bounds对应的是屏幕的分辨率,而要通过Bounds.Width获取屏幕的宽度,则需要将其转化为WPF单位的高宽。 步骤:

C# 获取当前屏幕DPI

帅比萌擦擦* 提交于 2020-03-05 15:15:36
原文: C# 获取当前屏幕的宽高和位置 上一篇博客《 C# 获取当前屏幕DPI 》,介绍了如何获取当前屏幕的DPI设置 本章主要介绍如何获取当前窗口所在屏幕的信息 当前屏幕信息 如果当前是单屏幕,可以直接获取主屏幕 var primaryScreen = Screen.PrimaryScreen; 如果当前是多屏,建议通过窗口句柄获取Screen信息 var window = Window.GetWindow(ExportButton);//获取当前主窗口 var intPtr = new WindowInteropHelper(window).Handle;//获取当前窗口的句柄 var screen = Screen.FromHandle(intPtr);//获取当前屏幕 获取屏幕高宽/位置 DpiPercent DPI转换比例常量,DpiPercent = 96; 为何DpiPercent为96 ?有一个概念“ 设备无关单位尺寸 ”,其大小为1/96英寸。比如: 【物理单位尺寸】=1/96英寸 * 96dpi = 1像素; 【物理单位尺寸】=1/96英寸 * 120dpi = 1.25像素; 关于WPF单位和系统DPI,可以参考 《WPF编程宝典》中相关章节 Screen.Bounds Bounds对应的是屏幕的分辨率,而要通过Bounds.Width获取屏幕的宽度

QT控件字体根据系统缩放比例(DPI)自适应

|▌冷眼眸甩不掉的悲伤 提交于 2020-03-05 12:12:50
QT控件字体根据系统DPI自适应 现象 在学习使用QT编写串口助手时,发现生成软件在屏幕缩放比例不同(也就是dpi不同)的情况下显示的不一样,比如系统缩放比例设为150%情况下的显示 而一般情况下的缩放比例为100%的情况下的显示 对比发现,系统缩放比例改为150%后,软件的字体也随之放大,但控件大小没有变化。 分析 导致这种现象的原因是设计时字体是Point Size,会随着系统更改缩放比例而调整,而QT的控件不会因为系统缩放比例变化而变化。 解决方案 参考网上一些资料,有两种方案 1、字体使用Pixel Size,这种方案,字体和控件都不会因系统缩放比例改变而变化,缺点应该是在一些缩放比例设置为150%的电脑上软件会看起来比较小,比如我的小新air13。 参考 https://blog.csdn.net/Think88666/article/details/83591183 2、打开软件的时候获取系统dpi,根据dpi对所有控件进行缩放。 参考 https://blog.csdn.net/a844651990/article/details/83963669 在我看来第二种方案更加合适一些,根据上面链接加入一些代码,在缩放控件的同时,缩放其坐标位置。显示如下 缩放控件size但不改变位置 缩放控件size同时改变位置 相关代码如下 //刷新dpi void MainWindow

微信公众平台开发 - 页面自适应

最后都变了- 提交于 2020-02-26 04:58:07
通过以下标签实现页面自适应: <meta name="viewport" content=" height = [pixel_value | device-height] , width = [pixel_value | device-width ] , initial-scale = float_value , minimum-scale = float_value , maximum-scale = float_value , user-scalable = [yes | no] , target-densitydpi = [dpi_value | device-dpi | high-dpi | medium-dpi | low-dpi] " /> width 控制 viewport 的大小,可以指定的一个值或者特殊的值,如 device-width 为设备的宽度(单位为缩放为 100% 时的 CSS 的像素)。 height 和 width 相对应,指定高度。 target-densitydpi 一个屏幕像素密度是由屏幕分辨率决定的,通常定义为每英寸点的数量(dpi)。Android支持三种屏幕像素密度:低像素密度,中像素密度,高像素密度。一个低像素密度的屏幕每英寸上的像素点更少,而一个高像素密度的屏幕每英寸上的像素点更多。Android

关于<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">的解释

ε祈祈猫儿з 提交于 2020-02-26 04:57:32
随着高端手机(Andriod,Iphone,Ipod,WinPhone等)的盛行,移动互联应用开发也越来越受到人们的重视,用html5开发移动应用是最好的选择。然而,每一款手机有不同的分辨率,不同屏幕大小,如何使我们开发出来的应用或页面大小能适合各种高端手机使用呢?学习html5 viewport的使用能帮你做到这一点…… viewport 语法介绍: <!-- html document --> <meta name="viewport" content= "height = [pixel_value | device-height] , width = [pixel_value | device-width ] , initial-scale = float_value , minimum-scale = float_value , maximum-scale = float_value , user-scalable = [yes | no] , target-densitydpi = [dpi_value | device-dpi | high-dpi | medium-dpi | low-dpi]"/> width 控制 viewport 的大小,可以指定的一个值或者特殊的值,如 device-width 为设备的宽度(单位为缩放为 100% 时的 CSS 的像素)。