Android 多分辨率自适应总结

这周的工作对Android项目多分辨率自适应进行调整。故对这方面知识进行不断的尝试学习。Android项目刚开始做的时候一定养成编程习惯,所有资源调用放在value中。统一命名以及管理。总结了以下内容。

一、一般基本原则以及总结

1、xml布局中不要写死, 既单位不要用px,尽量用dp,或者match、warp

2、应该尽量把资源图片设计成可以拉伸的.9图,如果有渐变,尽量横向或竖向单方向渐变,这样能大大减小安装包大小,同时也能提高处理速度。

3、如果不想设计多套图片,那就设计最大的那套。压缩总比拉伸好,放在drawable-xhdpi这个文件夹。

4、写几套value值,对应不同分辨率。一套layout即可。如下图所示。

5、建立多个layout文件夹,文件夹名称为layout-800x480等。需要适应那种分辨率就写成什么。(这种方式太累了,还会导致应用大,不建议)

6、迫不得已要重写部分layout的xml。

layout-1024x768

layout-1024x600

layout-1280x768

layout-land-1024x720 //1024x768横屏

layout-port-976x768     //1024x768竖屏

注意格式,【layout】-【port/land】-【长度x宽度】

注意事项:

在android3.0后,要适配如上的分辨率,需将高度减去48像素,即底部状态栏的高度,android方可识别。

分辨率中大的数字必须写到前面,否则会产生语法错误。

7、

<supports-screens
android:largeScreens="true"
android:normalScreens="true"
android:anyDensity = "true"/>

android:anyDensity="true" ,这一句对整个的屏幕都起着十分重要的作用,值为true,我们的应用程序当安装在不同密度的手机上时,程序会分别加载hdpi,mdpi,ldpi文件 夹中的资源。

在</application>标签和</manifest> 标签之间添加上面那段代码。即可

二、附上Android部分屏幕分辨率,像素知识。

低密度(120),ldpi

中密度(160),mdpi

高密度(240),hdpi

小屏幕

1、QVGA(240×320),2.6~3.0寸

普通屏幕

1、WQVGA(240×400),3.2~3.5寸

2、FWQVGA(240×432),3.5~3.8寸

3、HVGA(320×480),3.0~3.5寸

4、WVGA(480×800),3.3~4.0寸

5、FWVGA(480×854),3.5~4.0寸

大屏幕

1、WVGA(480×800),4.8~5.5寸

2、FWVGA(480×854),5.0~5.8寸

屏幕尺寸分为:small,normal,large,xlarge分别表示小,中,大,超大屏

屏幕密度分为:ldpi,mdpi,hdpi,xhdpi,它们的标准值分别是:120dpi,160dpi,240dpi,320dpi

px(像素):屏幕上的点。

in(英寸):长度单位。

mm(毫米):长度单位。

pt(磅):1/72英寸。

dp(与密度无关的像素):一种基于屏幕密度的抽象单位。在每英寸160点的显示器上,1dp = 1px。

dip:与dp相同,多用于android/ophone示例中。

sp(与刻度无关的像素):与dp类似,但是可以根据用户的字体大小首选项进行缩放。

由此,根据 google 的建议,TextView 的字号最好使用 sp 做单位,而且查看TextView的源码可知 Android 默认使用 sp 作为字号单位。

关于sp与dp的选择的建议是:

1、如果textview的显示区域可以弹性变化(wrap_content,当然其所有父view也需要可以弹性变化),这时可以优先考虑用sp,这时字体大小更改一般来说不会破坏界面的可用性

2、 与1情况相反时,textview的显示区域已经限定在一个固定值(或者其父view被限定了),这时优先考虑用dp吧,不然遇到一直使用着超大字体的用户,字体可能横向被截了,而用户不知情,会觉得是程序问题。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-05 09:10:19

Android 多分辨率自适应总结的相关文章

Android -- Webview自适应屏幕

第一种                                                                                          WebSetting settings = webView.getSettings(); settings.setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN); 把所有内容放在webview等宽的一列中.(可能会出现页面中链接失效) 第二种             

Android多分辨率适配经验总结

??Android多分辨率适配是一件很有意义但是比较麻烦的事情,网上有很多关于多分辨率适配的文章,多数文章讲解的都是整个APP的图片比较规则,可以将图片做成9图来完成多分辨率适配,但是对于一些游戏类应用(这里说的游戏没有使用游戏引擎).低龄儿童应用,APP中有很多花哨的图片,这种APP的图片显然无法做成9图,在网上查了很多资料始终没有比较理想的解决方案,结合自己最近做的项目介绍一下针对这种情况下的多分辨率适配: 为了减少UI的工作量,一个APP只提供一套图: 为了减少程序员的重复工作,一个APP

【转】android多分辨率适配

前一阶段开发android项目,由于客户要求进行多分辨率适配,能够支持国内主流的分辨率手机.因此经过了几次开发走了很多弯路,目前刚刚领略了android多分辨率适配的一些方法. 先介绍一下所走的弯路,由于android的布局文件存放在res的layout中,可以根据不同的手机分辨率指定特定的layou参数,如图所示:.根据不同的手机设定多个分辨率layout参数布局文件.因此再程序加载的过程中,会把运行该分辨率下的布局文件. 这样开发的问题是回到至布局文件很多,很乱.不方便管理.一旦修改需要修改

android多分辨率适配

前一阶段开发android项目,由于客户要求进行多分辨率适配,能够支持国内主流的分辨率手机.因此经过了几次开发走了很多弯路,目前刚刚领略了android多分辨率适配的一些方法. 先介绍一下所走的弯路,由于android的布局文件存放在res的layout中,可以根据不同的手机分辨率指定特定的layou参数,如图所示:.根据不同的手机设定多个分辨率layout参数布局文件.因此再程序加载的过程中,会把运行该分辨率下的布局文件. 这样开发的问题是回到至布局文件很多,很乱.不方便管理.一旦修改需要修改

Android 多分辨率多屏幕适配

请参见文章:http://blog.csdn.net/jiangxinyu/article/details/8598046 文章描述非常清晰. Android 多分辨率多屏幕适配

Android 多分辨率机器适配

假设有如下分辨率机器: 800 x 480 1024 x 600 1024 x 768 1280 x 800 1920 x 1200 2048 x 1536 总共六种类分辨率机器,如果按照dp为单位来细分可以分为几种呢? 首先通过context.getResources().getDisplayMetrics().density获取到当前机器的屏幕密度,然后通过dp = px/density进行换算可以得到机器对应的以dp为单位的大小.比如,我分别打出了自己手里面设备对应的dp,值如下: 设备p

Android实现自适应正方形GridView

Android实现自适应正方形GridView

android屏幕自适应4方法案例整合

android:屏幕自适应 From:4种必须知道的Android屏幕自适应解决方案(求投票支持) demo下载:http://www.eoeandroid.com/forum.php?mod=attachment&aid=NjE0Njh8ZTIyZDA2M2N8MTMzODgyOTQxN3w1NzAwOTV8MTczOTcz Demo首页的预览图 一.细说layout_weight 目前最为推荐的Android多屏幕自适应解决方案. 该属性的作用是决定控件在其父布局中的显示权重,一般用于线性布

Android系统自适应屏幕大小

1.屏幕相关概念1.1分辨率是指屏幕上有横竖各有多少个像素1.2屏幕尺寸指的是手机实际的物理尺寸,比如常用的2.8英寸,3.2英寸,3.5英寸,3.7英寸android将屏幕大小分为四个级别(small,normal,large,and extra large).1.3屏幕密度每英寸像素数手机可以有相同的分辨率,但屏幕尺寸可以不相同,Diagonal pixel表示对角线的像素值(=),DPI=933/3.7=252android将实际的屏幕密度分为四个通用尺寸(low,medium,high,