用于Android宽屏设备的屏幕适配方法及系统与流程

文档序号:11458474阅读:332来源:国知局

本发明涉及安卓应用领域,具体涉及一种用于android宽屏设备的屏幕适配方法及系统。



背景技术:

目前,全球支持android操作系统的设备共计有18796种,android操作系统一般应用于手机设备和电视及电视盒子等宽屏设备。

对于android手机设备而言,由于android手机设备的高宽能够等比调整,因此android手机设备可采用dp(deviceindependentpixels,设备独立像素)的方案来达到屏幕适配的目的。

但是,android电视和android盒子等无法等比调整的宽屏设备(尤其是高宽比率≠16:9的非标准分辨率设备)而言,因为宽屏设备的dpi(dotsperinch,像素密度)值处于一个特殊区间(其高度不足),所以若采用dp为单位设置view(android系统的一个超类,android系统应用层界面可视化的基本组件单元)的高宽,则会造成图片资源读取错位,进而导致图片失真。

因此,现有的android宽屏设备使用时,宽屏设备的应用程序在绘制xml(extensiblemarkuplanguage,可扩展标记语言)布局与加载图片时,会出现图片拉伸、压瘪和失真等问题。



技术实现要素:

针对现有技术中存在的缺陷,本发明解决的技术问题为:如何对android宽屏设备进行屏幕设配。本发明对android宽屏设备进行屏幕适配的精度较高,能够保证android宽屏设备使用时的质量,非常适于推广。

为达到以上目的,本发明提供的用于android宽屏设备的屏幕适配方法,包括以下步骤:

步骤a、根据目标android宽屏设备的分辨率,得到横向像素的最大值pxmax和纵向像素的最大值pymax,转到步骤b;

步骤b:根据横向缩放因子rx和pxmax计算横向适配像素xp,xp=rx·nx,nx的取值范围为1~a,a为基准横向分辨率;根据纵向缩放因子ry和pymax计算纵向适配像素yp,yp=ry·ny,ny的取值范围为1~b,b为基准纵向分辨率,转到步骤c;

步骤c、采用xp值编写xml布局文件中的横向信息和字体,采用yp值编写xml布局文件中的纵向信息。

本发明提供的用于android宽屏设备的屏幕适配系统,包括像素最大值获取模块、适配像素计算模块和xml布局文件编写模块;

像素最大值获取模块用于:根据目标android宽屏设备的分辨率,得到横向像素的最大值pxmax和纵向像素的最大值pymax,向适配像素计算模块发送适配像素计算信号;

适配像素计算模块用于:收到适配像素计算信号后,根据横向缩放因子rx和pxmax计算横向适配像素xp,xp=rx·nx,nx的取值范围为1~a,a为基准横向分辨率;根据纵向缩放因子ry和pymax计算纵向适配像素yp,yp=ry·ny,ny的取值范围为1~b,b为基准纵向分辨率,向xml布局文件编写模块发送xml布局文件编写信号;

xml布局文件编写模块用于:xml布局文件编写信号后,采用xp值编写xml布局文件中的横向信息和字体,采用yp值编写xml布局文件中的纵向信息。

与现有技术相比,本发明的优点在于:

(1)参见步骤a和b可知,本发明对目标android宽屏设备的分辨率,根据自主研发的计算公式针对性的进行了计算,进而根据计算得到的横向适配像素xp和纵向适配像素xy,对分辨率的高宽比非标准的android宽屏设备,进行图片高宽度的自适应设置,不会出现现有技术中采用dp为单位设置高宽,而造成的图片资源读取错位和图片失真的情形。因此,本发明能够精准的对android宽屏设备进行屏幕适配,保证了android宽屏设备使用时的质量,非常适于推广。

(2)参见步骤b可知,本发明根据横向缩放因子rx和纵向缩放因子ry均根据基准分辨率得到,进而使得android宽屏设备能够进行标准的屏幕适配,进一步保证了android宽屏设备使用时的质量。

(3)参见步骤c及之后的流程可知,本发明根据xp和xy设置完xml布局文件后,会将xml布局文件存放于nodpi-drawable文件中,进而能够减少的图片压缩几率,显著节省了cpu/gpu的资源。

附图说明

图1为本发明实施例中用于android宽屏设备的屏幕适配方法的流程图。

具体实施方式

以下结合附图及实施例对本发明作进一步详细说明。

参见图1所示,本发明实施例中的用于android宽屏设备的屏幕适配方法,包括以下步骤:

s1:当目标android宽屏设备的分辨率(例如1280·672)的高宽比率(即横向像素个数比纵向像素个数)≠16:9时,需要根据android宽屏设备的分辨率,分别对生成的xp(横向适配像素)和yp(纵向适配像素)的取值区间进行缩放,此时需要在androidstudio/eclipse项目res文件下,根据目标android宽屏设备的分辨率(宽屏设备的横向和纵向的像素个数),生成values文件(安卓应用程序用于存放本地属性参数的文件,以导入的分辨率数值命名),转到s2。

s1中根据目标android宽屏设备的分辨率生成values文件的方法为:手动新建values文件并导入分辨率,或者以压缩包的形式直接将分辨率生成values文件。

s2:对分辨率参数进行分割,得到pxmax(横向像素的最大值)和pymax(纵向像素的最大值),横向像素的取值区间为【1,pxmax】,纵向像素的取值区间为【1,pymax】,转到s3。

s3:在实际编写xml中设置view的高宽值和间距时,android默认1px即为一个像素,但以1280·672为例,由于其高宽比例≠16:9,因此会出现高度不足的问题,故需要对xp、yp的实际取值进行缩放,转到s4。

s3中对xp、yp的实际取值进行缩放的具体流程为:

s301:根据pxmax和基准横向分辨率a(1920),计算横向缩放因子rx,根据pymax和基准纵向分辨率b(1080),计算纵向缩放因子ry,转到s302。

s302:根据rx和pxmax计算xp,xp=rx·nx,nx∈【1,a】;根据ry和pymax计算yp,yp=ry·ny,ny∈【1,b】。

s3举例如下:在读取1个单位的像素时,第1个横向适配像素xp1取值是xp1=rx·1=1280/1920·1=0.666667个像素;第1个纵向适配像素取值是yp1=ry·1=672/1080·1=0.621875个像素。与dp的高宽等比缩放方案相比,s3可针对于非标准分辨率设备进行图片高宽度的自适应。

s4:删除s1中生成的values文件后,新建values文件(文件名相同);根据xp和yp生成dimens.xml文件(尺寸文件),将dimens.xml文件输出至新建的values文件(文件名为1280·672)中,转到s5。

s4的目的在于:如果重复创建或者覆盖原有文件会导致dimens.xml文件中出现xp、yp取值区间缺省值,严重的话会导致xml读值错乱的问题。

s4中输出的dimens文件格式如下:

s5:根据values文件中的xp和xy编写xml布局文件:采用xp值编写xml布局文件中的横向信息和字体,横向信息包括宽度、横向内间距、横向外间距和圆角半径等;采用yp值编写xml布局文件中的纵向信息,纵向信息包括高度、纵向内间距、纵向外间距等。

s5中编写后的xml布局文件的格式为:

s5中若编写xml布局文件完成后,还可以包括以下流程:将指定的(尺寸较大的)xml布局文件存放于nodpi-drawable文件(安卓应用程序用于存放android应用程序本地图片、动画文件等资源的文件夹,该文件下的png/jpeg图片不可压缩)中,以减少图片压缩几率,显著节省了cpu/gpu的资源。

本发明实施例中的用于android宽屏设备的屏幕适配系统,包括像素最大值获取模块、适配像素计算模块、xml布局文件编写模块和xml布局文件存放模块。

像素最大值获取模块用于:根据目标android宽屏设备的分辨率,得到横向像素的最大值pxmax和纵向像素的最大值pymax,向适配像素计算模块发送适配像素计算信号。

适配像素计算模块用于:收到适配像素计算信号后,根据横向缩放因子rx和pxmax计算横向适配像素xp,xp=rx·nx,nx∈【1,a】,a为基准横向分辨率(1920);根据纵向缩放因子ry和pymax计算纵向适配像素yp,yp=ry·ny,ny∈【1,b】,b为基准纵向分辨率(1080),向xml布局文件编写模块发送xml布局文件编写信号。

xml布局文件编写模块用于:xml布局文件编写信号后,采用xp值编写xml布局文件中的横向信息和字体,采用yp值编写xml布局文件中的纵向信息;横向信息包括宽度、横向内间距、横向外间距和圆角半径;纵向信息包括高度、纵向内间距和纵向外间距。

xml布局文件存放模块用于:在xml布局文件编写工作完成后,将所述xml布局文件存放于nodpi-drawable文件中。

由此可知,本发明实施例对目标android宽屏设备的分辨率,根据自主研发的计算公式针对性的进行了计算,进而根据计算得到的横向适配像素xp和纵向适配像素xy,对分辨率的高宽比非标准的android宽屏设备,进行图片高宽度的自适应设置,不会出现现有技术中采用dp为单位设置高宽,而造成的图片资源读取错位和图片失真的情形。因此,本发明实施例能够精准的对android宽屏设备进行屏幕适配,保证了android宽屏设备使用时的质量,非常适于推广。

进一步,本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1