最近正在做Android的UI设计,故搜集了一些Android上进行UI设计的一些资料,现和各位分享下。

首先说说density,density值表示每英寸有多少个显示点,与分辨率是两个不同的概念。

Android主要有以下几种屏:

QVGA和WQVGA屏density=120;

HVGA屏density=160;

WVGA屏density=240;

下面以480dip*800dip的WVGA(density=240)为例,详细列出不同density下屏幕分辨率信息:

当density=120时 屏幕实际分辨率为240px*400px (两个点对应一个分辨率)
状态栏和标题栏高各19px或者25dip
横屏是屏幕宽度400px 或者800dip,工作区域高度211px或者480dip
竖屏时屏幕宽度240px或者480dip,工作区域高度381px或者775dip

density=160时 屏幕实际分辨率为320px*533px (3个点对应两个分辨率)
状态栏和标题栏高个25px或者25dip
横屏是屏幕宽度533px 或者800dip,工作区域高度295px或者480dip
竖屏时屏幕宽度320px或者480dip,工作区域高度508px或者775dip

density=240时 屏幕实际分辨率为480px*800px (一个点对于一个分辨率)
状态栏和标题栏高个38px或者25dip
横屏是屏幕宽度800px 或者800dip,工作区域高度442px或者480dip
竖屏时屏幕宽度480px或者480dip,工作区域高度762px或者775dip

apk的资源包中,当屏幕density=240时使用hdpi标签的资源
当屏幕density=160时,使用mdpi标签的资源
当屏幕density=120时,使用ldpi标签的资源。
不加任何标签的资源是各种分辨率情况下共用的。
建议:布局时尽量使用单位dip,少使用px。

device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA 推荐使用这个,不依赖像素。

dip与px的互相转换:

public static int dip2px(Context context, float dipValue){

  final float scale = context.getResources().getDisplayMetrics().density;

  return (int)(dipValue * scale + 0.5f);

  }

  public static int px2dip(Context context, float pxValue){

  final float scale = context.getResources().getDisplayMetrics().density;

  return (int)(pxValue / scale + 0.5f);

  }

更多相关文章

  1. Android(安卓)简单快捷高效的屏幕适配
  2. Android屏幕密度(Density)和分辨率的关系
  3. Android_TextView属性XML详解
  4. Android屏幕适配总结终极方案
  5. android游戏开发(三)触屏事件处理_手势识别
  6. Android多分辨率和多屏幕的布局适配详解
  7. Shape画圆环的注意点
  8. android根据屏幕尺寸区分设备类型,phone或者pad
  9. Android屏幕密度(Density)和分辨率的关系

随机推荐

  1. Activity半透明效果
  2. Android(安卓)Fresco图片处理库用法API英
  3. android 银联支付接入报nullexception异
  4. android 内核添加tourch screen
  5. android listview check 事件
  6. 横向 纵向结合的ScrollView
  7. android 遍历安装过的包名
  8. Android(安卓)一些常用的但是记不住的设
  9. Android中的MD5加密
  10. android 实现无限定时循环viewpager