问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Android 开发中 如何做到XML多屏幕适配?

发布网友 发布时间:2022-04-25 06:07

我来回答

3个回答

热心网友 时间:2022-04-22 05:50

  Android上面解决适配不同尺寸(分辨率)和密度的问题,主要是通过以密度分类,再加上分辨率的方式来减化适配不同尺寸屏幕的工作量.
  一般来讲,屏幕分辨率越高,清晰度也应该越高,也即其密度也应该越大,否则会看起来很不清楚,比如4寸的屏幕只显示100个像素,这就近距离看电影,或者看投影仪一样,非常的粗糙和不清晰.所以,Android主要是以屏幕密度来区分不同的设备:
  高密度: hdpi (High dots per inch)
  中等密度: mdpi (Medium dots per inch)
  低密度: ldpi (Low dots per inch)
  并且布局中推荐使用密度无关单位dip或dp,来作为长度或者宽度的单位.这样,从理论上来讲,开发者只需要做:
  1. 为不同的密度屏幕准备图片资源
  (图片是没办法的,因为图片的长度和宽度是固定的像素值,不能够随密度变化而变化,可以强行拉伸,但图片会失真.当然也有9 Patch图片可以解决随意拉伸的问题.但普通的图片的长度和宽度是固定的.
  2. 用dip作为单位来指定长度或者宽度
  就可以适配所有的设备,让布局在所有的屏幕上都得到比较好的显示效果.
  当然,现实的生活没有这么完美,各种设备千差万别.但是总体仍可分为这三大类,为这三大类准备好图片后,其他的只要与某一类较接近,即使稍有拉伸或失真,也不太明显,是可以接受的.所以,对于一般性的应用程序,写一个布局文件在layout中,为三种密度准备图片drawable-hdpi, drawable-mdpi, drawable-ldpi,就足以应对80%的设备.
  res/
  drawable-hdpi/
  ic_launcher.png
  drawable-mdpi/
  ic_launcher.png
  drawable-ldpi/
  ic_launcher.png
  layout/
  main.xml
  (这里可能有点过时了,因为现在多了xdpi,而且很多设备也是xdpi的.)
  但是光以密度屏幕来分类和处理还不够.随着设备的越来越多,以及屏幕尺寸越来越大,还有就是Tablet的出现,又会出现这样的问题:设备的屏幕密度虽然不高,但其分辨率很高.举个简单的例子:iPad2的分辨率是1024x768,iPhone 4 960x640,但是iPhone 4的密度是326ppi,远大于iPad2.但是,无论密度有多高它的屏幕就那么,最多能显示960x640个像素点,一个1024*768的图片在iPad上可以看到全部,而iPhone上只能看到一大半!这也是为什么用iPad来运行iPhone上的应用程序时,只是以屏幕中间的一部分来模拟显示的原因.
  对Android来说也是一样的.如此一来,即使相同的dpi,假如其屏幕尺寸非常大,那么为其准备的图片将被拉伸很大或者显示不全.UI元素也会被拉伸很长.这样并不是很好的体验.对于尺寸大的屏幕应该让其显示更多的内容,而不是把一部分元素拉伸很大.所以,很多手机安卓应用如果未经专门适配,在平板上直接使用体验将会是非常差的.
  为了解决这样的问题,就还必须以屏幕尺寸来区分设备
  主要有四种屏幕尺寸:small, normal, large and xlarge
  这主要是配合屏幕密度来一起使用,比如,适配平板的图片:
  drawable-xlarge-hdpi/ic_launcher.png
  这里就要提到了密度,尺寸和分辨率的对应关系了. 屏幕分辨率是随设备变化最明显的一个,上面的二种分类方法仅是对屏幕进行的大致的一个分类.虽然屏幕分辨率与密度没有直接的关系,但是所有的设备都基本上一致的:
  ldpi QVGA 240*320 0.8
  mdpi HVGA 320*480 1.0
  hdpi WVGA 480*800 1.5
  hdpi qHD 540*960 1.5
  xdpi WXGA 720*1280 2

热心网友 时间:2022-04-22 07:08

高度适配问题,最外层layout你可以采用
LinearLayout
里面包含 的控件可以将 layout_heght 设置为0dp
并且加上 layout_weight 这个属性
layout_weight表示当前这个view占当前布局的比重
比如有上面的四个文本框占总屏幕的4/5,下面一行文字占1/5
上面的的layout_weight = "4",下面的一行文字的就设置 layout_weight = "1"追问但是我有几个空间设置了 外边距 设置了外边距的空间 也可以这么做吗

追答左右边距应该是不受影响的,但是上下的边距可能需要再调整了,但是这个方法是能适配所有分辨率的。至少比显示不出来强吧

热心网友 时间:2022-04-22 08:43

哪显示不出来追问你看我发的第一张图 下面有1行文字 第二第三张 没都显示出来

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
家具五金都有哪些 家具五金配件都有哪些 家具五金包括哪些 板式家具五金配件的分类和作用 9大类板式家具五金件介绍 家具五金配件都有那些 玉凤镇概述 百色几个镇 一文讲透SPU和SKU 有一只小巴西龟,我放在家门口前面一点晒太阳 巴西龟晒太阳会晒死吗? 未分配利润怎么分配 android 3.0是支持平板电脑的?!跟用2.2以下开发手机程序一样吗? 未分配利润怎样分配 为什么京东的自营客服有的是官方客服,有的是店铺客服,店铺客服是不是不是自营,是京东和第三方合作的? 针对Android手机平板,横竖屏如何做适配 android手机的应用程序是否可以装到android的平板上? android 开发的应用程序怎么样兼容手机和平板 哪个安卓平板比较好 android 平板开发 怎么适配平板的屏幕啊 github windows怎么用 在济南参加项目管理PMp培训大概多少钱?都需要考试什么内容?一年可以... 宾馆的床单上不小心能上去个油块,能扣押金吗? 很油,睡觉床单都会留下油印,有什么办法可以去油 床单上有一块油渍怎么弄都弄不掉怎么办啊 床单上的油去除窍门 前任和你分手了,说不爱你了。一天到晚给别的女生点赞,连歌都会点赞。可你的他就不点,你会难过吗? 爱点赞这个说给抖音点赞赚钱的app大家千万不要下!就是骗子平台,提现时说必须先充值成会员,充值后? 给喜欢的男生点赞 谁能推荐点好听中文歌、英文歌我都爱噶。 满分作文《请给我点个赞》 刚买的纯棉衣服褪色怎么办? 国外分配未分配利润可以全部分配吗 谁知道京东退款怎处理啊,京东也没有官方客服,店铺客服也不回? 怎样看待小米平板对 Android 平板应用的影响 在京东商城买东西怎么没有客服了? 宝宝周岁爷爷奶奶包多少红包 粘金鱼缸的玻离胶哪种牌子好 京东商城有么有在线客服?就像是淘宝那样的客服。可以直接沟通的 自己做1800*700*800的鱼缸用什么玻璃好怎么粘比较好 bartender10.1 如何免费注册? 玻新粘里个鱼缸,粘完之后才发现有的地方玻璃胶没有打满,在外面镶边的时候多打点胶行么? 谁在京东买过东西,他们怎么都没有客服啊 如何获取正版BarTender注册码 我要用玻璃粘一个长2米宽40厘米高80厘米鱼缸的技巧是什么?要多厚的玻璃... Bartender10.0 破解注册机谁有 有的朋友麻烦发我邮箱 2537664909@qq.com 谢谢! 张师傅计划用下边的5块玻璃粘成一个无盖的长方体鱼缸,先想一想该怎么粘. (1)做这个鱼缸需要玻璃多少 京东商城官方网人工台客服电话是什么 bartender 10.1怎么免费注册 想拆了鱼缸,二甲苯,丙酮都试过了。都不能溶解玻璃胶。还有什么办法来溶解玻 请问京东商城官方客/服电话是多少