Android,关于设备独立像素(dip/dp),关于机型屏幕适配
2013-11-27 15:19
459 查看
虚拟像素单位, 用于定义应用的UI, 以密度无关的方式表达布局尺寸或位置.
android官方定义dip等价于160dpi屏幕下的一个物理像素点.
在运行时, android根据使用中的屏幕的实际密度, 透明地处理任何所需dp单位的缩放.
dp到屏幕像素的转换公式: pixels = dps * (density / 160).
举例来说, 在 240 dpi 的屏幕上, 1dp 等于 1.5物理像素.
强烈推荐使用dp单位来定义你的应用UI, 这是确保你的UI在不同屏幕上显示的一个好方法.
Android平台划分几个的实际支持的屏幕尺寸和分辨率范围
4个通用尺寸:
small: 至少 426dp x 320dp
normal: 至少 470dp x 320dp
large: 至少 640dp x 480dp
xlarge: 至少 960dp x 720dp -- Android 2.3 (API Level 9)
4个通用屏幕密度:
ldpi (low)
mdpi (medium)
hdpi (high)
xhdpi (extra high): -- Android 2.2 (API Level 8)
图1: Android平台如何将真实屏幕密度和大小映射到通用的密度和尺寸配置.
表 1. Android SDK中包含的模拟器皮肤的屏幕尺寸和密度,以及其他典型的分辨率.
* 要模拟此配置, 使用WVGA800 或 WVGA854创建一个AVD, 指定自定义密度160.
** 要模拟此配置, 使用WVGA800 或 WVGA854创建一个AVD, 指定自定义密度120.
ps: 增加辅助工具类:
import android.content.Context;
public class DensityUtil {
public static int dip2px(Context context, float dpValue) {
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (dpValue * scale + 0.5f);
}
public static int px2dip(Context context, float pxValue) {
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (pxValue / scale + 0.5f);
}
}
android官方定义dip等价于160dpi屏幕下的一个物理像素点.
在运行时, android根据使用中的屏幕的实际密度, 透明地处理任何所需dp单位的缩放.
dp到屏幕像素的转换公式: pixels = dps * (density / 160).
举例来说, 在 240 dpi 的屏幕上, 1dp 等于 1.5物理像素.
强烈推荐使用dp单位来定义你的应用UI, 这是确保你的UI在不同屏幕上显示的一个好方法.
Android平台划分几个的实际支持的屏幕尺寸和分辨率范围
4个通用尺寸:
small: 至少 426dp x 320dp
normal: 至少 470dp x 320dp
large: 至少 640dp x 480dp
xlarge: 至少 960dp x 720dp -- Android 2.3 (API Level 9)
4个通用屏幕密度:
ldpi (low)
mdpi (medium)
hdpi (high)
xhdpi (extra high): -- Android 2.2 (API Level 8)
图1: Android平台如何将真实屏幕密度和大小映射到通用的密度和尺寸配置.
表 1. Android SDK中包含的模拟器皮肤的屏幕尺寸和密度,以及其他典型的分辨率.
Size | Low density (120), ldpi | Medium density (160), mdpi | High density (240), hdpi | Extra high density (320), xhdpi | |
---|---|---|---|---|---|
Small screen | 2 ~ 3.5 inch | QVGA (240x320) | 480x640 | ||
Normal screen | 3+ ~ 4.5 inch | WQVGA400 (240x400) WQVGA432 (240x432) | HVGA (320x480) | WVGA800 (480x800) WVGA854 (480x854) 600x1024 | 640x960 |
Large screen | 4+ ~ 7 inch | WVGA800** (480x800) WVGA854** (480x854) | WVGA800* (480x800) WVGA854* (480x854) 600x1024 | ||
Extra Large screen | 7 ~ 10+ inch | 600x1024 | 768x1024 WXGA (768x1280) 800x1280 | 1152x1536 1152x1920 1200x1920 | 1536x2048 1536x2560 1600x2560 |
** 要模拟此配置, 使用WVGA800 或 WVGA854创建一个AVD, 指定自定义密度120.
ps: 增加辅助工具类:
import android.content.Context;
public class DensityUtil {
public static int dip2px(Context context, float dpValue) {
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (dpValue * scale + 0.5f);
}
public static int px2dip(Context context, float pxValue) {
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (pxValue / scale + 0.5f);
}
}
相关文章推荐
- Android屏幕适配解析 - 详解像素,设备独立像素,归一化密度,精确密度及各种资源对应的尺寸密度分辨率适配问题
- 关于Android中涉及屏幕适配的单位dp,px,sp,dip的学习笔记。
- Android屏幕适配解析 - 详解像素,设备独立像素,归一化密度,精确密度及各种资源对应的尺寸密度分辨率适配问题
- Android屏幕适配解析 - 详解像素,设备独立像素,归一化密度,精确密度及各种资源对应的尺寸密度分辨率适配问题
- Android屏幕适配解析 - 详解像素,设备独立像素,归一化密度,精确密度及各种资源对应的尺寸密度分辨率适配问题
- 【Android 应用开发】Android屏幕适配解析 - 详解像素,设备独立像素,归一化密度,精确密度及各种资源对应的尺寸密度分辨率适配问题
- Android屏幕适配解析 - 详解像素,设备独立像素,归一化密度,精确密度及各种资源对应的尺寸密度分辨率适配问题
- Android屏幕适配解析 - 详解像素,设备独立像素,归一化密度,精确密度及各种资源对应的尺寸密度分辨率适配问题
- 【Android 应用开发】Android屏幕适配解析 - 详解像素,设备独立像素,归一化密度,精确密度及各种资源对应的尺寸密度分辨率适配问题
- Android屏幕适配解析 - 详解像素,设备独立像素,归一化密度,精确密度及各种资源对应的尺寸密度分辨率适配问题
- Android独立像素dp在实际设备上显示大小
- 关于android屏幕适配的问题(drawable-xxxxxxxx,dp,sp,px等等),偶尔看到了android源代码,关于dpi的区分的值
- Android之px/dpi/dip/dp/density/DisplayMetrics和屏幕适配
- 关于android屏幕适配的问题(drawable-xxxxxxxx,dp,sp,px等等),偶尔看到了android源码,关于dpi的区分的值
- android长度单位:dp (设备独立像素)
- 关于Android设备下的屏幕适配问题
- android中相对像素dp(dip)、绝对像素px、sp和屏幕密度
- Android 屏幕适配——关于布局文件中dp 的使用
- Android dpi,dip,dp的概念以及屏幕适配
- 分辨率像素android手机屏幕分辨率 及 sp dip(dp) px 区别 及高中低分辨率时处理