androi 适配

关于mate适配的问题

 

屏幕上拥有的像素的总数。大部分情况下分辨率都被表示为“宽度×长度”,但分辨率并不意味着屏幕长宽比。在Android系统中,程序一般并不直接处理分辨率。系统会根据屏幕本身的尺寸与密度特性,自动载入对应的资源,并把它们从逻辑像素转换成屏幕上的物理像素。以屏幕分辨率为基础,沿屏幕长宽方向排列的像素。密度较低的屏幕,在长和宽方向都只有比较少的像素,而高密度的屏幕通常则会有很多。屏幕的密度是非常重要的,举个例子,长宽以像素为单位定义的界面元素,在低密度的屏幕上会显得很大,但在高密度的屏幕上则会显得很小。因此在android布局时最好都使用DIP来定义程序的界面布局,这样可以保证你的UI在各种分辨率的屏幕上都可以正常显示。

Android系统加载资源文件时,会自动根据密度去加载对应的资源,一般低密度(120ldpi),中密度(160mdpi)高密度(240hdpi),现在随着屏幕越来越大,资源文件加入了xhdpi 和xxdpi,以应对大屏幕和高dpi的机型。但是在华为mate的机型上,屏幕的分辨率很大为1280*720,但是此时它的密度较小,根据密度转换pixels = dips * (density / 160)。华为mate 的DPI为240,因此在它上面1个DIP等于1.5个物理像素。此时在mate上加载的资源就是hdpi资源,整个布局就显得很不协调。

根据相关资料发现,系统在加载资源时会先去读取先关参数

DisplayMetrics metrics = resources.getDisplayMetrics()

Configuration configRes = resources.getConfiguration();

系统跟据这些参数来加载资源,mate的为1.5因此我们可以在加载资源前,临时的改变系统density这个属性,让其加载你想要加载的资源文件,此时就将density设为2.0f(在加载资源文件之前)

if(android.os.Build.VERSION.SDK_INT >= 17){

configRes.densityDpi = (int) (DESIRED_DENSITY * 160); }

Android4.0后此方法有所改变。

float desiredDensity = 2.0f;

metrics.density = desiredDensity;

metrics.xdpi = desiredDensity * 160;

metrics.ydpi = desiredDensity * 160;

metrics.densityDpi = (int) (desiredDensity * 160);

然后调用updateConfiguration将其更新,自此系统就会去加载你设置的资源文件。

 

 

 

 

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看rEADME.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看rEADME.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
Android适配是指将应用程序在不同的Android设备上进行优化和调整,以确保应用能够在各种屏幕尺寸、分辨率和设备类型上正常运行。适配涉及到以下几个方面: 1. 布局适配:根据不同屏幕尺寸和分辨率调整布局,保证界面元素的合理排列和显示效果。可以使用ConstraintLayout、LinearLayout等布局管理器来实现自适应布局。 2. 图片适配:提供不同分辨率的图片资源,并根据设备的屏幕密度加载合适的图片。可以通过资源文件夹的命名方式(如drawable-hdpi、drawable-xhdpi等)来管理不同分辨率的图片。 3. 字体适配:根据设备的屏幕密度和用户设置的字体大小,调整应用中的文字大小和样式。可以使用sp(可缩放像素)作为字体大小的单位,以支持用户自定义字体大小。 4. 功能适配:根据设备的硬件特性和系统版本,判断是否支持某些功能或API,并进行相应的处理。可以使用特定的API或兼容性库来实现功能适配。 5. 版本适配:针对不同的Android版本,处理其特有的行为和API差异。可以使用条件判断、动态加载类等方式来处理不同版本的兼容性问题。 6. 设备适配:根据设备的硬件特性和屏幕尺寸,调整应用的功能和界面。可以使用资源限定符、特定的API等来实现设备适配。 以上是Android适配的一些常见方面,具体的适配策略和方法,可以根据应用的需求和目标设备的特点进行选择和实施。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值