如果开发人员想在Android开源手机操作系统中进行一些修改的话,需要使用模拟器来进行相应的操作。我们51CTO也在相关文章中向大家介绍过Android模拟器具体作用。那么今天大家可以通过对Android模拟器尺寸的大小修改方法进一步对模拟器有一个深入的了解。

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

首先我们来看一下skin在SDK中的位置,默认的skin放在$ANDROID_HOME/tools/lib/images/skins/目录,我们要安装新的skin,也只要简单的把skin解压到这个目录就可以了。考虑到键盘按键数目众多,每个都重新定位工作量很大,我将基于HVGA skin来修改,这个skin的设备背景和键盘背景分别是两张图片,只要键盘背景大小不变,原先定义好的坐标位置不需要修改就可以在新的skin里使用。

Android模拟器尺寸大小修改的具体步骤:

第一步,在$ANDROID_HOME/tools/lib/images/skins/目录下新建一个名为WVGA的目录,把HVGA目录下的 device.png、keyboard.png以及layout3个文件复制过来,然后把HVGA-L目录下除了background.png和 layout外的所有文件都复制过来,这样我们定制所需要的资源便都有了,接下里只要修改即可。

第二步,用GIMP(Windows下可以用Paint.NET)修改device.png,逆时针方向旋转90度,并作适当的放大和剪切,使得屏幕区域正好为800*600。不要修改keyboard.png。

第三步,因为我们把设备背景作了放大,在调整按键的位置之前,可以现在GIMP中看一下效果,适当的把home.png、powe.png、arrow_left.png等也放大一些。

第四步,开始修改layout文件。layout文件的结构很容易理解,首先是device部分,包含了背景(background)、显示区域 (display)和按键(buttons);接下来是键盘区域,包含了背景图片(background)和键盘按键(buttons)的定义;第3部分是模拟器整体布局的设定,包含了窗口大小(width, height)、背景色(color)、屏幕方向(event),以及它所包含的设备部分与键盘部分的位置;第4部分则可以修改模拟器的键盘布局 (keyboard charmap),网络链接速度(network speed)和延时(network delay)。

让我们从头来看layout文件。我们先把display的宽和高分别修改为800和480,x和y则填入设备背景上显示区域的左上角坐标,这样,模拟器的输出分辨率和位置就确定了。device的buttons部分我们暂时放一下,而键盘区域的background和buttons都不需要修改,所以我们来到了整体布局(layout)部分,根据之前修改设备背景时掌握的数据,暂时先把窗口的宽和高设为1280*800,背景色保持不变,event的确切含义我也没有查到,但是可以肯定它会影响屏幕输出内容的方向,EV_SW:0:1则是我们能阅读情况。 随后,设置device和keyboard两部分在整个窗口的位置,酌情设定即可。最后,我们保持键盘布局为qwerty2,并且网络设定也保持默认值不变(稍后解释这一点)。

这时,用./emulator -skin WVGA命令打开模拟器,我们就可以看到一个比较正常的模拟器界面了,键盘也可以使用,显示区域的位置也基本OK,只是设备上的Home、Back等按键是完全错位的。好吧,让我们回过头去修改device的buttons定位,这时,我们可能需要边改边试了,同时显示区域的位置,键盘摆放的位置也可以作进一步的调整。

到这里,一个WVGA的skin的基本上已经完成了,但是关于Android模拟器尺寸的修改还留下了几个问题。

1、如果在笔记本(1280*800分辨率)上用,skin的显示区域太大,键盘部分可能显示不全,给使用带来不便

模拟器还会报出警告: emulator window was out of view and was recentred

我们可以通过-scale ­­选项来解决这个问题,针对我们这个WVGA skin,用./emulator -skin WVGA -scale 0.9来启动模拟器就没问题了

2、在eclipse中,如何使用WVGA skin

在 Run -> Run Configurations -> Target -> Emulator launch parameters 这里可以选择我们所要用的skin。

同时在”Additional Emulator Command Line Options” 里面可以填入-scale ­­,来缩放模拟器窗口。

不仅是Android模拟器尺寸的修改,我们之前提到的网络速度和网络延时,也可以在这里设置(在这里设置显然要好过在skin中设置)。

【责任编辑:曹凯 TEL:(010)68476606】

android自定义尺寸模拟器,Android模拟器尺寸随意改相关推荐

  1. android 自定义输入法布局,Android自定义输入法使用方法

    Android自定义输入法使用方法 时间:2017-04-21     来源:Android开发学习网 对于Android用户而言,一般都会使用第三方的输入法.可是在输入密码时(尤其是支付相关的密码) ...

  2. android 自定义dialog样式,Android 自定义dialog类

    首先定制style样式 styles.xml 加入自定义样式 @null true true true @color/transparent @color/transparent true 0.6 在 ...

  3. android 自定义图片容器,Android应用开发中自定义ViewGroup视图容器的教程

    一.概述在写代码之前,我必须得问几个问题: 1.ViewGroup的职责是啥?ViewGroup相当于一个放置View的容器,并且我们在写布局xml的时候,会告诉容器(凡是以layout为开头的属性, ...

  4. android自定义组件属性,android自定义控件并添加属性的方法以及示例

    安卓系统为我们提供了丰富的控件,但是在实际项目中我们仍然需要重新通过布局来实现一些效果,比如我们需要一个上面图标,下面文字的button,类似于下面这样的: 最直接的解决办法是通过将imageview ...

  5. android 自定义弹窗diss,Android中自定义PopupWindow,动态弹窗。

    我的第一篇博客,咱们直奔主题.先上个效果图 在android中自定义PopupWindow: 1.首先定义好你想要显示的窗口的布局文件,再实例化一个View对象:窗口布局可灵活变化,dialog_la ...

  6. android自定义键盘遮挡,Android软键盘遮挡的四种完美解决方案

    一.问题概述 在编辑框输入内容时会弹出软键盘,而手机屏幕区域有限往往会遮住输入界面,我们先看一下问题效果图: 输入用户名和密码时,系统会弹出键盘,造成系统键盘会挡住文本框的问题,如图所示: 输入密码时 ...

  7. android自定义组件属性,Android组合控件详解 自定义属性

    组合控件详解 & 自定义属性 组合控件是自定义控件的一种,只不过它是由其他几个原生控件组合而成,故名组合控件. 在实际项目中,GUI 会遇到一些可以提取出来做成自定义控件情况. 一个自定义控件 ...

  8. android 自定义图片裁剪,Android图片裁剪工具封装

    笔者从零开始开发Android,而且是跳过java直接使用kotlin开发,这其中的好处是可以避开java这门传统语言诸多的潜规则,难处是相比资深Android开发者少了许多可以现用的工具库.比如An ...

  9. android自定义view onmeasure,Android 重写ViewGroup 分析onMeasure()和onLayout()方法

    Android 重写ViewGroup 分析onMeasure()和onLayout()方法 在继承ViewGroup类时,需要重写两个方法,分别是onMeasure和onLayout. 1,在方法o ...

  10. android 自定义viewgroup onmeasure,Android进阶——自定义View之View的绘制流程及实现onMeasure完全攻略...

    引言 Android实际项目开发中,自定义View不可或缺,而作为自定义View的一种重要实现方式--继承View重绘尤其重要,前面很多文章基本总结了继承View的基本流程:自定义属性和继承View重 ...

最新文章

  1. 报名 | 清华大学大数据能力提升项目开始报名啦!(2021秋)
  2. Python【Python基础】
  3. 使用jquery实现的计算器功能
  4. c语言内存复制函数,【C语言】 字符串操作函数及内存拷贝函数归总
  5. 公司上线流程 pushonline_alpha
  6. Publishing failed with multiple errors和Timeout waiting for Tomcat v5.5的解决方法
  7. 查看用户过期linux,linux下控制帐户过期的多种方法讲解
  8. Mod, Or and Everything HDU - 6950
  9. 【JS】实时监控页面,input框数值自动求和
  10. php仿微信上传图片压缩,PHP仿微信多图片预览上传实例代码
  11. 从拉格朗日乘子法到SVM
  12. java wait 释放锁_JAVA锁之wait,notify(wait会释放锁,notify仅仅只是通知,不释放锁)...
  13. 基于java springboot+mybatis学生学科竞赛管理管理系统设计和实现
  14. 什么时候使用z编码_你什么时候编码?
  15. 拳王虚拟项目公社:闲鱼虚拟资源玩法案例拆解,教你玩转虚拟资源,货源+方法
  16. 8.input设备(input子系统)驱动
  17. 图灵聊天机器人小程序
  18. wyh2000 and pupil
  19. ESP8266-Arduino编程实例-MAX44009环境光传感器驱动
  20. 新一代亚马逊电子书阅读器Kindle Paperwhite全球同步上市

热门文章

  1. 批处理脚本之批量打开常用软件
  2. centos7安装字体
  3. c++windows openSSL编译(ActivePerl-5.8.8.822-MSWin32-x86-280952.msi+openssl-1.0.2)
  4. PBOC 3.0非接触式学习笔记(一)
  5. 戴尔电脑能升级鸿蒙系统嘛,(必看知识)戴尔可以支持升级到windows10的机型系列...
  6. Computing Parameters Analytically
  7. 【Web技术】772- Web 中文字体性能优化实践
  8. ASP.NET超市收银管理系统
  9. 园区管理系统平台 V2.0 发布了
  10. 抢渡长江论文matlab,模型解析及Matlab程序 抢渡长江