Android 多分辨率自适应总结

摘要:
在Android项目开始时,你必须养成编程的习惯,并重视所有资源调用。布局-104x768layout-104x600layout-1280x768layot-land-1024x720//1024x768水平屏幕布局-port-976x768//1024x768垂直屏幕注意格式,--注意:在Android 3.0之后,为了适应上述分辨率,您需要从高度(即底部状态栏的高度)中减去48像素,Android才能识别它。你可以附加部分Android的屏幕分辨率。根据谷歌的建议,最好使用sp作为TextView的字体大小单位,而根据TextView的源代码,Android默认使用sp作为字体大小单位。
这周的工作对Android项目多分辨率自适应进行调整。故对这方面知识进行不断的尝试学习。Android项目刚開始做的时候一定养成编程习惯,全部资源调用放在value中。统一命名以及管理。总结了下面内容。
一、一般基本原则以及总结
1、xml布局中不要写死, 既单位不要用px。尽量用dp,或者match、warp
2、应该尽量把资源图片设计成能够拉伸的.9图,假设有渐变,尽量横向或竖向单方向渐变。这样能大大减小安装包大小,同一时候也能提高处理速度。
3、假设不想设计多套图片,那就设计最大的那套。压缩总比拉伸好,放在drawable-xhdpi这个目录。
4、写几套value值,相应不同分辨率。一套layout就可以。例如以下图所看到的。

Android 多分辨率自适应总结第1张
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吧,不然遇到一直使用着超大字体的用户。字体可能横向被截了,而用户不知情,会认为是程序问题。

免责声明:文章转载自《Android 多分辨率自适应总结》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇OpenID代码示例(自用)iOS下WebRTC音视频通话(一)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

在MFC中使dialog自适应缩放

起因 最近用mfc做了不少小软件,界面上都是基于CDialog或者CFormView,界面不能缩放一直是问题。一个办法是在OnSize()里面调用所有控件的MoveWindow()函数,根据比例调整控件大小。但是在界面上控件比较多的时候,这个发放就显得很繁琐了。于是我写了一个CAutoResize类,去实现控件的统一缩放。 工作原理 原理上很简单,对于MF...

Android 5

activity_main <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"...

安卓手机无法使用adb导出文件

adb pull 无法使用 问题:在使用adb pull 文件到本地时无法导出 提升adb root 权限 - 失败,只有进入adb shell 然后su 提升,还是无法导出 解决方法 给需要导出的文件夹:读写执行的权限也是777,所有的勾上 注意使用命令行形式提升权限可能无法生效,也就是无法导出 软件为Android Killer 自带的An...

uniapp 微信小程序 微信7.0.12版本IOS端部分request请求被缓存

在IOS端微信更新深色模式后(7.0.12版本),IOS端小程序会出现实时请求的数据无法实时渲染到页面上。 也在微信社区向官方反映过该情况 ----> https://developers.weixin.qq.com/community/develop/doc/00064a827907e869a61a7220456c00 但是官方要求提供原生代码(我...

解决adb网络连接中出现的“由于目标计算机积极拒绝,无法连接”错误

在调试一块全志A83T安卓工控板(已root),启动后,安卓系统正常,设置好以太网 的静态IP地址:192.168.1.181,并接好网线,同时开发电脑WIN7系统IP地址 也是129.168.1.x, 在同一网段。win系统的cmd命令窗口中,先进行网络连接 测试,输入 ping 192.168.1.60命令进行测试,正常,表示网络已连通。 输入命令:a...

如何通过 WebP 自适应方案减少图片资源大小

前言 我们知道,理想的网页应该在 1 秒内打开,而在页面的整体大小中,图片往往是所占比例最大的一部分(大约占到 60% 以上,更多了解请点击),也可以参照如下图所示。优化图片不仅可以加快页面显示,还能降低移动网络的流量费用。原图产生的 PNG、JPEG、GIF 和 SVG 图片一般都有很大的压缩余地。下文将重点介绍一款图片新格式:WebP,从而揭开它神秘的...