当前位置: 网学 > 编程文档 > Android > 正文

定制Android模拟器skin

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: myeducs.cn 发布时间: 13/03/17

【网学网提醒】:网学会员编辑为广大网友搜集整理了:定制Android模拟器skin绩等信息,祝愿广大网友取得需要的信息,参考学习


    定制Android模拟器skin,以定制一个WVGA分辨率skin为例Android,skin,分辨率,WVGA,定制Android模拟器提供了4个标准的skin供我们使用,分别对应HVGA(横屏/竖屏)和QVGA(横屏/竖屏)我们只要在启动模拟器时使用-skin参数就可以载入相应的皮肤。,这不仅让我们可以随意的修改皮肤的外观,更主要的是当我们基于Android开发新的产品时,可以根据新的硬件spec来设置模拟器的参数,包括分辨率、按键布局、网络速度、网络延时等。现在就让我们来看看定制Android模拟器skin的方法,我将以一个WVGA分辨率的横屏(Landscape)skin为例。首先我们来看一下skin在SDK中的位置,默认的skin放在$ANDROID_HOME/tools/lib/images/skins/目录,我们要安装新的skin,也只要简单的把skin解压到这个目录就可以了。考虑到键盘按键数目众多,每个都重新定位工作量很大,我将基于HVGAskin来修改,这个skin的设备背景和键盘背景分别是两张图片,只要键盘背景大小不变,原先定义好的坐标位置不需要修改就可以在新的skin里使用。第一步,在$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部分则可以修改模拟器的键盘布局(keyboardcharmap),网络链接速度(networkspeed)和延时(networkdelay)。让我们从头来看layout文件。我们先把display的宽和高分别修改为800和480,x和y则填入设备背景上显示区域的左上角坐标,这样,模拟器的输出分辨率和位置就确定了。device的buttons部分我们暂时放一下,而键盘区域的background和buttons都不需要修改,所以我们来到了整体布局(layo
    ut)部分,根据之前修改设备背景时掌握的数据,暂时先把窗口的宽和高设为1280*800,背景色保持不变,event的确切含义我也没有查到,但是可以肯定它会影响屏幕输出内容的方向,EV_SW:0:1则是我们能阅读情况。随后,设置device和keyboard两部分在整个窗口的位置,酌情设定即可。最后,我们保持键盘布局为qwerty2,并且网络设定也保持默认值不变(稍后解释这一点)。这时,用./emulator-skinWVGA命令打开模拟器,我们就可以看到一个比较正常的模拟器界面了,键盘也可以使用,显示区域的位置也基本OK,只是设备上的Home、Back等按键是完全错位的。好吧,让我们回过头去修改device的buttons定位,这时,我们可能需要边改边试了,同时显示区域的位置,键盘摆放的位置也可以作进一步的调整。到这里,一个WVGA的skin的基本上已经完成了,但是还留下了几个问题。1、如果在笔记本(1280*800分辨率)上用,skin的显示区域太大,键盘部分可能显示不全,给使用带来不便模拟器还会报出警告:emulatorwindowwasoutofviewandwasrecentred
     我们可以通过-scale选项来解决这个问题,针对我们这个WVGAskin,用./emulator-skinWVGA-scale0.9来启动模拟器就没问题了2、在eclipse中,如何使用WVGAskin在Run->RunConfigurations->Target->Emulatorlaunchparameters这里可以选择我们所要用的skin。同时在”AdditionalEmulatorCommandLineOptions”里面可以填入-scale,来缩放模拟器窗口。而我们之前提到的网络速度和网络延时,也可以在这里设置(在这里设置显然要好过在skin中设置)。
    适配不同分辨率&;hdpi、mdpi、ldpi&;横屏竖屏
    编辑文档
    目录1一:不同的layout2二:hdpi、mdpi、ldpi3三:横屏竖屏
    编辑本段回目录一:不同的layout
    Android手机屏幕大小不一,有480x320,640x360,800x480.怎样才能让App自动适应不同的屏幕呢?其实很简单,只需要在res目录下创建不同的layout文件夹,比如layout-640x360,layout-800x480,所有的layout文件在编译之后都会写入R.Java里,而系统会根据屏幕的大小自己选择合适的layout进行使用。
    编辑本段回目录二:hdpi、mdpi、ldpi
    在之前的版本中,只有一个drawable,而2.1版本中有drawable-mdpi、drawable-ldpi、drawable-hdpi三个,这三个主要是为了支持多分辨率。drawable-hdpi、drawable-mdpi、drawable-ldpi的区别:(1)drawable-hdpi里面存放高分辨率的图片,如WVGA(480x800),FWVGA(480x854)(2)drawable-mdpi里面存放中等分辨率的图片,如HVGA(320x480)(3)drawable-ldpi里面存放低分辨率的图片,如QVGA(240x320)系统会根据机器的分辨率来分别到这几个文件夹里面去找对应的图
    片。
     在开发程序时为了兼容不同平台不同屏幕,建议各自文件夹根据需求均存放不同版本图片
    编辑本段回目录三:横屏竖屏
    以下步骤是网上流传的,不过我自己之前是通过图形化界面实现这个配置,算是殊途同归,有空我会把图片贴上来。还要说明一点:每个activity都有这个属性screenOrientation,每个activity都需要设置,可以设置为竖屏(portrait),也可以设置为无重力感应(nosensor)。要让程序界面保持一个方向,不随手机方向转动而变化的处理办法:在AndroidManifest.xml里面配置一下就可以了。加入这一行android:screenOrientation="landscape"。例如(landscape是横向,portrait是纵向):Java代码:
    复制到剪贴板Java代码
    1.2.13.14.15.16.package="com.ray.linkit"android:versionCode="1"android:versionName="1.0">
    21.
    另外,android中每次屏幕的切换动会重启Activity,所以应该在Activity销毁前保存当前活动的状态,在Activity再次Create的时候载入配置,那样,进行中的游戏就不会自动重启了!有的程序适合从竖屏切换到横屏,或者反过来,这个时候怎么办呢?可以在配置Activity的地方进行如下的配置android:screenOrientation="portrait"。这样就可以保证是竖屏总是竖屏了,或者landscape横向。而有的程序是适合横竖屏切换的。如何处理呢?首先要在配置Activity的时候进行如下的配置:android:configChanges="keyboardHidden|orientation",另外需要重写Activity的onConfigurationChanged方法。实现方式如下,不需要做太多的内容:
    @OverridepublicvoidonConfigurationChanged(ConfigurationnewConfig){super.onConfigurationChanged(newConfig);if(this.getResources().getConfiguration().orientation==Configuration.ORIENTATION_LANDSCAPE){//landdonothingisok}elseif(this.getResources().getConfiguration().orientation==Configuration.ORIENTATION_PORTRAIT){//portdonothingisok}}
    
    
  • 下一篇资讯: 安卓超级终端常用命令
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号