Android主流机型屏幕适配方案,直接使用设计图上的尺寸
《开源精选》是我们分享Github、Gitee等开源社区中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的是一个极低成本的 Android 屏幕适配方案——AndroidAutoSize。
AndroidAutoSize 在使用上非常简单,只需要填写设计图尺寸这一步即可接入项目,但需要注意的是,AndroidAutoSize 有两种类型的布局单位可以选择,一个是 主单位 (dp、sp),一个是 副单位 (pt、in、mm),两种单位面向的应用场景都有不同,也都有各自的优缺点: 主单位: 使用 dp、sp 为单位进行布局,侵入性最低,会影响其他三方库页面、三方库控件以及系统控件的布局效果,但 AndroidAutoSize 也是通过这个特性,使用 ExternalAdaptManager 实现了在不修改三方库源码的情况下适配三方库的功能 副单位: 使用 pt、in、mm 为单位进行布局,侵入性高,对老项目的支持比较好,不会影响其他三方库页面、三方库控件以及系统控件的布局效果,可以彻底的屏蔽修改 density 所造成的所有未知和已知问题,都是这样 AndroidAutoSize 也就无法对三方库进行适配 适配效果
Pixel 2 XL | 1440 x 2880 | 560dpi:
Pixel XL | 1440 x 2560 | 560dpi:
Nexus 5X | 1080 x 1920 | 420dpi:
Nexus 4 | 768 x 1280 | 320dpi:
Nexus S | 480 x 800 | 240dpi:
如何使用
依赖: dependencies { implementation "com.github.JessYanCoding:AndroidAutoSize:v1.2.1" }
基本使用:
在 AndroidManifest 填写全局设计图尺寸 (单位 dp),如果使用副单位,则可以直接填写像素尺寸,不需要再将像素转化为 dp。无需其他过多配置 ,AndroidAutoSize 即可自动运行。 注意:
在使用主单位时,design_width_in_dp 和 design_height_in_dp 的单位必须是 dp,如果设计师给你的设计图,只标注了 px 尺寸 (现在已经有很多 UI 工具可以自动标注 dp 尺寸了),那请自行根据公式 dp = px / (DPI / 160) 将 px 尺寸转换为 dp 尺寸
进阶使用: 当某个 Activity 的设计图尺寸与在 AndroidManifest 中填写的全局设计图尺寸不同时,可以实现 CustomAdapt 接口扩展适配参数 public class CustomAdaptActivity extends AppCompatActivity implements CustomAdapt { @Override public boolean isBaseOnWidth() { return false; } @Override public float getSizeInDp() { return 667; } }当某个 Activity 想放弃适配,请实现 CancelAdapt 接口 public class CancelAdaptActivity extends AppCompatActivity implements CancelAdapt { }当某个 Fragment 的设计图尺寸与在 AndroidManifest 中填写的全局设计图尺寸不同时,可以实现 CustomAdapt 接口扩展适配参数 // 首先开启支持 Fragment 自定义参数的功能 AutoSizeConfig.getInstance().setCustomFragment(true);public class CustomAdaptFragment extends Fragment implements CustomAdapt { @Override public boolean isBaseOnWidth() { return false; } @Override public float getSizeInDp() { return 667; } }当某个 Fragment 想放弃适配,请实现 CancelAdapt 接口 public class CancelAdaptFragment extends Fragment implements CancelAdapt { }
—END—
开源协议:Apache2.0
开源地址:https://github.com/JessYanCoding/AndroidAutoSize
上海迪士尼恢复人偶游客互动,提醒禁止击打!曾屡现拍头事件3月6日,上海迪士尼度假区发布消息称,正逐步重启与迪士尼朋友的近距离互动,游客可以再次与迪士尼朋友们拥抱握手合影留念。南都记者注意到,上海迪士尼度假区在游客互动须知中明确,游客在互
求职旺季部分企业却遇招工难极目新闻记者周治涛刘玉琴马浩然临近毕业季,在武汉职业技术学院旅游与航空服务学院,院长李俊每周都会接访几波前来招聘的企业,导游酒店管理等热门专业的毕业生,供不应求。连日来,极目新闻记
辽国第一才女,因一首艳词命丧黄泉闻听母亲的噩耗,皇太子耶律浚及萧观音所生的几个公主,他们跪在爸爸的面前,苦苦哀求,不准。再三恳求再见母亲一面,也未获准。一代皇后含冤自尽,直到三十年后才得以平冤昭雪重熙二十四年八月
浅析瓦岗军起义失败的原因历史开讲在中国古代历史上,许多大一统王朝都有一个三百年魔咒,无论这个王朝如何起家,鼎盛时期有多么繁华,总是难逃三百年命数。而作为能够终结三百年分裂局面的隋朝,却像秦朝一样是个短命王
19世纪克里米厄法令的颁布标志着犹太人身份的转变历史开讲阿尔及利亚在现代犹太历史的背景下占据着特殊的地位,它是殖民世界中唯一一个本地犹太人被殖民国授予公民身份的地方1870年,在法国征服阿尔及利亚大约40年后,随着克里米厄法令的
唐昭宗刚要去上早朝,太监太子已登基,你还是老实待着吧唐朝是一个为人传诵的朝代,很多君王的故事都为人熟知,尤其在唐玄宗即位后,唐朝的盛世之风达到了顶峰。唐代诗人杜甫就在亿昔二首中描述过开元盛世之时家家户户粮仓丰实,国家昌盛至极的景象。
历史杂谈安南变交趾越南国土被明朝吞并历史开讲在阅读此文之前,麻烦您点击一下关注,既方便您进行讨论和分享,又能给您带来不一样的参与感,感谢您的支持。安南是现代越南北部地区的古称,自公元前三世纪起就有人类在此定居。16世
古人被判灭九族时,家中亲属为何不逃跑?其实选择逃的人才真蠢对于清朝历史有了解的人,都知道那些被株连九族的罪臣家人往往被抄家并被流放到宁古塔。就像余秋雨在文化苦旅中所写道的,对于被流放到东北的江南人和中原人来说,最难以忍受的就是株连的流放,
山东一偏远村庄,有着同一罕见的姓氏,村民自称是明朝皇室的后代在中国传统文化里,姓氏是宗族血脉的象征,是关系亲疏远近的代表,尤其是在古代,古人们很少更改自己的姓氏。不同于日本女性在婚嫁之后随男方姓,古代中国女性婚配后,被人称呼时虽常常在自己的
元朝被誉为最大的盛世?贸易经济下的商业之路,细谈元朝商业繁荣在阅读此文前,诚邀您点击一下关注,既方便您进行讨论与分享,又给您带来不一样的参与感,感谢您的支持。引言元朝作为中国历史上所持有的领土疆域最大的王朝,其政治经济文化等多方面都具有很高
历史文化系列之中原争霸春秋五霸和战国七雄春秋五霸东周分为春秋和战国两个时期。春秋(公元前770前476年)是我国奴隶社会的瓦解时期,周天子的权威一落千丈,各诸侯国不断进行战争,争当霸主。先后起来争霸的有齐桓公宋襄公晋文公