Chinaunix首页 | 论坛 | 博客
  • 博客访问: 90565
  • 博文数量: 10
  • 博客积分: 1430
  • 博客等级: 上尉
  • 技术积分: 201
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-08 00:20
文章分类

全部博文(10)

文章存档

2010年(8)

2009年(1)

2008年(1)

我的朋友

分类: LINUX

2010-06-02 14:25:00

Android模拟器提供了6个标准的skin供我们使用,分别对应HVGA(横屏/竖屏)、QVGA(横屏/竖屏)、WQVGA以及WVGA,我们只要在启动模拟器时使用 -skin 参数就可以载入相应的皮肤。这不仅让我们可以随意的修改皮肤的外观,更主要的是当我们基于Android开发新的产品时,可以根据新的硬件spec来设置模拟器的参数,包括分辨率、按键布局、网络速度、网络延时等。现在就让我们来看看定制Android模拟器skin的方法,我将以一个WVGA分辨率的横屏(Landscape)skin为例。

首先我们来看一下skinSDK中的位置,默认的skin放在$ANDROID_HOME/platform/android-*/skins/目录,我们要安装新的skin,也只要简单的把skin解压到这个目录就可以了。考虑到键盘按键数目众多,每个都重新定位工作量很大,我将基于WVGA800 skin来修改,这个skin的设备背景和键盘背景分别是两张图片,只要键盘背景大小不变,原先定义好的坐标位置不需要修改就可以在新的skin里使用。
第一步,在$ANDROID_HOME/platform/android-*/skins/目录下新建一个名为WVGAMyConf的目录,把HVGA目录下的device.pngkeyboard.png以及layout3个文件复制过来,然后把HVGA-L目录下除了layout外的所有文件都复制过来,这样我们定制所需要的资源便都有了,接下里只要修改即可。
第二步,用GIMPWindows下可以用Paint.NET)修改background_*.png,作适当的放大和剪切,使得屏幕区域正好为800*600。不要修改keyboard.png
第三步,因为我们把设备背景作了放大,在调整按键的位置之前,可以现在GIMP中看一下效果,适当的把home.pngpowe.pngarrow_left.png等也放大一些。(注:此步骤不做亦可)
第四步,开始修改layout文件。layout文件的结构很容易理解,包含了背景(background)、显示区域(display)和按键(buttons);接下来是键盘区域,包含了背景图片(background)和键盘按键(buttons)的定义;第3部分是模拟器整体布局的设定,包含了窗口大小(width, height)、背景色(color)、屏幕方向(event),以及它所包含的设备部分与键盘部分的位置;第4部分则可以修改模拟器的键盘布局(keyboard charmap),网络链接速度(network speed)和延时(network delay)
让我们从头来看layout文件。我们先把display的宽和高分别修改为800480xy则填入设备背景上显示区域的左上角坐标,这样,模拟器的输出分辨率和位置就确定了。buttons部分我们暂时放一下,而键盘区域的backgroundbuttons都不需要修改,所以我们来到了整体布局(layout)部分,根据之前修改设备背景时掌握的数据,暂时先把窗口的宽和高设为1280*800,背景色保持不变,event的确切含义我也没有查到,但是可以肯定它会影响屏幕输出内容的方向,EV_SW:0:1则是我们能阅读情况。随后,设置devicekeyboard两部分在整个窗口的位置,酌情设定即可。最后,我们保持键盘布局为qwerty2,并且网络设定也保持默认值不变(稍后解释这一点)。
这时,用./emulator -skin WVGAMyConf命令打开模拟器,我们就可以看到一个比较正常的模拟器界面了,键盘也可以使用,显示区域的位置也基本OK,只是设备上的HomeBack等按键是完全错位的。好吧,让我们回过头去修改devicebuttons定位,这时,我们可能需要边改边试了,同时显示区域的位置,键盘摆放的位置也可以作进一步的调整。
到这里,一个WVGAskin的基本上已经完成了,但是还留下了几个问题。

eclipse中,如何使用WVGA skin
Run -> Run Configurations -> Target -> Emulator launch parameters 这里可以选择我们所要用的skin
同时在”Additional Emulator Command Line Options” 里面可以填入-scale   ,来缩放模拟器窗口。
而我们之前提到的网络速度和网络延时,也可以在这里设置(在这里设置显然要好过在skin中设置)。

Question:
在定制skin过程中,我自己定制一个800 * 600的是没有任何问题的,但是为什么1280 * 800的就不能在前台显示模拟器呢?是模拟器不支持的关系吗?请各位高人指点迷津。

Annex:

Standard

Width

 

Height

DAR

Pixels

HVGA

480

*

320

3:2

153,600

QVGA

320

*

240

4:3

76,800

WQVGA400

400

*

240

5:3

96,000

WQVGA432

432

*

240

9:5

103,680

WVGA800

800

*

480

5:3

384,000

WVGA854

854

*

480

 

409,920

In addition to, we can manually set the screen size through AVD manager.

 

Reference

  VGA              Video Graphics Array

  QVGA           Quarter Video Graphics Array

  QQVGA        Quarter QVGA

  Sub-QVGA   Sub Quarter QVGA

  CIF                Common Intermediate Format

  QCIF             Quarter Common Intermediate Format

  QQCIF          Quarter QCIF

  Sub-QCIF     Sub Quarter QCIF

(改编自网络).
阅读(9385) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~