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.0f;
if( [platform hasPrefix:@"iPhone4"]
|| [platform hasPrefix:@"iPhone5"]
|| [platform hasPrefix:@"iPhone6"])
return 326.0f; // // For iPhone6+ // Added by Gerry 2014.11.22 10:12 // // Note: iPhone6 326ppi if( [platform hasPrefix:@"iPhone7"]) { return 401.0f; }
if( [platform hasPrefix:@"iPhone"]) // catch-all for higher-end devices not yet existing
{
return 326.0f;
} if( [platform hasPrefix:@"iPod1"]
|| [platform hasPrefix:@"iPod2"]
|| [platform hasPrefix:@"iPod3"])
return 163.0f;
if( [platform hasPrefix:@"iPod4"]
|| [platform hasPrefix:@"iPod5"])
return 326.0f;
if( [platform hasPrefix:@"iPod"]) // catch-all for higher-end devices not yet existing
{
return 326.0f;
} if( [platform hasPrefix:@"iPad1"]
|| [platform hasPrefix:@"iPad2"])
return 132.0f;
if( [platform hasPrefix:@"iPad3"]
|| [platform hasPrefix:@"iPad4"])
return 264.0f;
if( [platform hasPrefix:@"iPad"]) // catch-all for higher-end devices not yet existing
{
return 264.0f;
} if( [platform hasPrefix:@"x86_64"])
{
return 132.0f;
}
android 获取DPI方法:
DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm);
float density = dm.densityDpi;
return
density;

本文介绍了一种用于获取iOS设备像素密度(ppi)的方法,通过查询设备型号来确定像素密度,并提供了一段示例代码。此外,还介绍了如何在Android设备上获取屏幕密度(dpi),通过使用DisplayMetrics类并调用相应的方法来实现。
387





