ios获取ppi方法:
#include <sys/types.h>#include <sys/sysctl.h>
size_t size; sysctlbyname(
"hw.machine"
, NULL, &size, NULL,
0
);
char
*machine = malloc(size); sysctlbyname(
"hw.machine"
, machine, &size, NULL,
0
); NSString *platform = [NSString
stringWithUTF8String:
machine]; free(machine);
if
( [platform
hasPrefix:
@
"iPhone1"
] || [platform
hasPrefix:
@
"iPhone2"
] || [platform
hasPrefix:
@
"iPhone3"
])
return
163.0
f;
if
( [platform
hasPrefix:
@
"iPhone4"
] || [platform
hasPrefix:
@
"iPhone5"
] || [platform
hasPrefix:
@
"iPhone6"
])
return
326.0
f;
//
// For iPhone6+
// Added by Gerry 2014.11.22 10:12
//
// Note: iPhone6 326ppi
if
( [platform
hasPrefix:
@
"iPhone7"
]) {
return
401.0
f; }
if
( [platform
hasPrefix:
@
"iPhone"
])
// catch-all for higher-end devices not yet existing
{
return
326.0
f; }
if
( [platform
hasPrefix:
@
"iPod1"
] || [platform
hasPrefix:
@
"iPod2"
] || [platform
hasPrefix:
@
"iPod3"
])
return
163.0
f;
if
( [platform
hasPrefix:
@
"iPod4"
] || [platform
hasPrefix:
@
"iPod5"
])
return
326.0
f;
if
( [platform
hasPrefix:
@
"iPod"
])
// catch-all for higher-end devices not yet existing
{
return
326.0
f; }
if
( [platform
hasPrefix:
@
"iPad1"
] || [platform
hasPrefix:
@
"iPad2"
])
return
132.0
f;
if
( [platform
hasPrefix:
@
"iPad3"
] || [platform
hasPrefix:
@
"iPad4"
])
return
264.0
f;
if
( [platform
hasPrefix:
@
"iPad"
])
// catch-all for higher-end devices not yet existing
{
return
264.0
f; }
if
( [platform
hasPrefix:
@
"x86_64"
]) {
return 132.0f;
}
android 获取DPI方法:
DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); float density = dm.densityDpi;
return
density;