<“寸”是中国传统长度单位,1丈 = 10尺 = 100寸,其中1寸 = 3.33厘米 “英寸”是英联邦使用的长度单位,1码 = 3英尺 = 36英寸,其中1英寸 = 2.54厘米> 屏幕大小 指的是对角线的长度,单位为英寸 屏幕分辨率 指的是屏幕上长宽的像素点数 例如 720 * 1280 density屏幕密度 <ppi/dpi (pixels/dot per inch)>(设备对角线上像素点的个数chu屏幕大小)
HVGA屏下一个像素点的大小是一定固定的值xxx英寸,此时 1 dp = 1 px for example:
public int getPixel (int x, int y) 返回指定位置的像素颜色值 public final int getWidth() 获取位图的宽度(像素点个数) /** * 根据手机的分辨率从 dp 的单位 转成为 px(像素) */ public static int dip2px(float dpValue) { final float scale = getResources().getDisplayMetrics().density; return (int) (dpValue * scale + 0.5f); } 其中 desity = DENSITY_DEVICE / (float) DENSITY_DEFAULT; DENSITY_DEFAULT = 160 在此设备上1dp用多少像素点表示 系统加载图片时会优先从与设备屏幕密度相同的图片资源文件中查找,如果没有去更高密度文件夹<图片会变小>, 还找不到则去低密度查找<图片会变大>。 // 获取屏幕的宽高 DisplayMetrics metric = new DisplayMetrics(); activity.getWindowManager().getDefaultDisplay().getMetrics(metric); scaledDensity = metric.scaledDensity; if (metric.heightPixels >= metric.widthPixels) { screenWidthForPortrait = metric.widthPixels; screenHeightForPortrait = metric.heightPixels; } else { screenWidthForPortrait = metric.heightPixels; screenHeightForPortrait = metric.widthPixels; } 获取设备的IP地址 public String GetHostIp() { try { for (Enumeration<NetworkInterface> en = NetworkInterface .getNetworkInterfaces(); en.hasMoreElements(); ) { NetworkInterface intf = en.nextElement(); for (Enumeration<InetAddress> enumIpAddr = intf .getInetAddresses(); enumIpAddr.hasMoreElements(); ) { InetAddress inetAddress = enumIpAddr.nextElement(); if (!inetAddress.isLoopbackAddress() && InetAddressUtils.isIPv4Address(inetAddress .getHostAddress())) { if (!inetAddress.getHostAddress().toString() .equals("null") && inetAddress.getHostAddress() != null) { return inetAddress.getHostAddress().toString().trim(); } } } } } catch (SocketException ex) { Log.e("WifiPreference IpAddress", ex.toString()); } return ""; } Build相关属性和调用系统信息的方法 一、Build类的作用主要是获取系统信息,他有两个嵌套类: Build.BOARD // 主板 Build.BRAND // Android系统定制商 Build.CPU_ABI // cpu指令集 Build.DEVICE // 设备参数 Build.DISPLAY // 显示屏参数 Build.FINGERPRINT // 硬件名称 Build.HOST // Build.ID // 修订版本列表 Build.MANUFACTURER // 硬件制造商 Build.MODEL // 版本 Build.PRODUCT // 手机制造商 Build.TAGS // 描述build的标签 Build.TIME //时间 Build.TYPE // builder类型 Build.USER //用户 ① Build.VERSION 获取android系统的版本信息。 当前开发代号 Build.VERSION.CODENAME 源码控制版本号 Build.VERSION.INCREMENTAL 版本字符串 Build.VERSION.RELEASE 版本号 Build.VERSION.SDK 版本号 Build.VERSION.SDK_INT ② Build.VERSION_CODES 这个类封装了已经存在的SDK框架及android版本。 ECLAIR_0_1 December 2009: Android 2.0.1 ECLAIR_MR1 January 2010: Android 2.1 FROYO June 2010: Android 2.2 GINGERBREAD November 2010: Android 2.3 GINGERBREAD_MR1 February 2011: Android 2.3.3. HONEYCOMB February 2011: Android 3.0. HONEYCOMB_MR1 May 2011: Android 3.1. HONEYCOMB_MR2 June 2011: Android 3.2. ICE_CREAM_SANDWICH Android 4.0. 二、关于在获取系统信息的使用 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR2)对比应用的版本与平台的版本做相应的处理。 @TargetApi(Build.VERSION_CODES.HONEYCOMB_MR2)这个语句在程序中指出应用的版本。 getRadioVersion方法可以根据以上属性获取系统信息。 获取 imei String imeiId = ((TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE)).getDeviceId(); 获取 user_agent WebSettings.getDefaultUserAgent(context)