在Android开发中,美工妹子给我的图片都是px的单位,但是这个但是这个单位在程序中并不好,不能够自动适配。所以需要我们手动转换为dp。
关于DP,PD,SP
PPI = Pixels per inch,每英寸上的像素数,即 “像素密度”
ppi的运算方式是:
PPI = √(长度像素数² + 宽度像素数²) / 屏幕对角线英寸数
dp:Density-independent pixels,以160PPI屏幕为标准,则1dp=1px,
dp和px的换算公式 :
dp*ppi/160 = px。比如1dp x 320ppi/160 = 2px。
sp:Scale-independent pixels,它是安卓的字体单位,以160PPI屏幕为标准,当字体大小为 100%时, 1sp=1px。
sp 与 px 的换算公式:sp*ppi/160 = px
得出:
px = dp*ppi/160
dp = px / (ppi / 160)
px = sp*ppi/160
sp = px / (ppi / 160)
dp ≈ sp
程序
所以我就需要按计算机计算咯。但是我怎么可能手动呢,于是我就写了一个C艹的可以执行文件。帮助计算。都是些垃圾代码。不敢私藏,拿出来分享,有需要改进的就随便改。(改了给我说说,一起用)
#include<stdlib.h>
#include<iostream>
using namespace std;
void PX_PD(float b) {
while (true)
{