`
dengbaoleng
  • 浏览: 1189731 次
文章分类
社区版块
存档分类
最新评论

Android 支持多屏幕机制 及手机的适配问题(部分来自网络)

 
阅读更多
1.Screen size 屏幕实际尺寸。
Android讲屏幕实际尺寸分为3个通用的尺寸。

2.Aspect ratio 长宽比

3.Resolution 分辨率

4.Density 密度

5.Density-independent pixel 密度无关的像素

介绍:Adnroid1.6或以上SDK,在AndroidManifest.xml中提供新的一个元素<supports-screens>用于支持多屏幕机制。
<supports-screens
android:largeScreens="true" 是否支持大屏
android:normalScreens="true" 是否支持中屏
android:smallScreens="true" 是否支持小屏
android:anyDensity="true" 是否支持多种不同密度
/>


Android提供3种方式处理屏幕自适应
一.预缩放的资源(基于尺寸和密度去寻找图片)
1.如果找到相应的尺寸和密度,则利用这些图片进行无缩放小时。
2.如果没法找到相应的尺寸,而找到密度,则认为该图片尺寸为 "medium",利用缩放这个图片显示。
3.如果都无法匹配,则使用默认图片进行缩放显示。默认图片默认标配 "medium" (160)。

二.自动缩放的像素尺寸和坐标(密度兼容)
1.如果应用程序不支持不同密度android:anyDensity="false",系统自动缩放图片尺寸和这个图片的坐标。
(代码中体现)
2.对于预缩放的资源,当android:anyDensity="false",也不生效。
3.android:anyDensity="false",只对密度兼容起作用,尺寸兼容没效果

三.兼容模式显示在大屏幕,尺寸(尺寸兼容)
1.对于你在<supports-screens>声明不支持的大屏幕,而这个屏幕尺寸是normal的话,系统使用尺寸为 ("normal")和密度为("medium)显示。
2. 对于你在<supports-screens>声明不支持的大屏幕,而这个屏幕尺寸是larger的话,系统同样使用尺寸为 ("normal")和密度为("medium)显示,不过会出现一层黑色的背景。不是居中显示。


密度独立:
系统默认应用支持DIP单位的,三个使用DIP的地方:
1.加载资源时,使用DIP实现预缩放的资源。
2.在Layout使用DIP,系统自动完成缩放。
3.在应用程序中,自动缩放一些绝对像素。
(只有在android:anyDensity="false"生效)即屏幕自适应方式二
4.像素单位都使用DIP,文本单位使用SP

最佳屏幕独立实践:
1.使用wrap_content, fill_parent 和使用dip作为像素单位in XML layout files。
2.避免使用AbsoluteLayout
3.在代码中,不要使用像素数字硬编码,而是要通过dip转换为px。
例子:
你使用手势分析器分析一个scroll手势,假如,你滚动的距离是16px。
1.在一个160dip的屏幕中,你实际移动距离 16px / 160dpi = 1/10th of an inch (or 2.5 mm)
2.在一个240dip的屏幕中,你实际移动距离 16px / 240dpi = 1/15th of an inch (or 1.7 mm)
// The gesture threshold expressed in dip
private static final float GESTURE_THRESHOLD_DIP = 16.0f;
// Convert the dips to pixels
final float scale = getContext().getResources().getDisplayMetrics().density;
mGestureThreshold = (int) (GESTURE_THRESHOLD_DIP * scale);
4.使用密度和/或尺寸特定资源(通过文件夹)


关于预缩放或者自动缩放图片或9格图
1.系统是一定对会资源包下的图片进行合理的缩放。
例如:一张240x240高密度图片,显示在中密度的屏幕上,图片大小自动变为160x160。
2.你在API中不会得到被缩放后的图片尺寸,得到还是你原来图片的尺寸。
3.如果你不想系统自动帮你缩放图片,可以建立一个res/drawable-nodpi文件夹,存放你的图片。
4.也可以通过BitmapFactory.Options 完成系统自动缩放图片或9格图(在画图时)。
5.自动缩放图片比预缩放花费更多CPU,但是用更少内存(RAM or ROM ?)

***最好在androidmanifest.xml中加上<support-secreen>标签。使用方式自己看下就行了。

分享到:
评论

相关推荐

    android多屏幕多分辨率适配

    在Android开发中,面对各种不同尺寸和分辨率的设备,如何实现多屏幕多分辨率的适配是开发者必须掌握的关键技能。Android系统提供了丰富的机制来帮助我们处理这个问题,使得应用能够在各种屏幕上正常显示,提供良好的...

    android_px_多屏幕适配生成工具和资源

    在Android开发中,多屏幕适配是一个至关重要的环节,因为Android设备有着各种不同的屏幕尺寸和分辨率,这使得应用需要能够自适应各种显示环境。本文将深入探讨如何利用Android的工具和资源来实现高效的多屏幕适配。 ...

    Android多分辨率适配方案

    Android 设计之初就考虑到了 UI 在多平台的适配,它本身提供了一套完善的适配机制,随着版本的发展适配也越来越精确。UI 适配主要受平台两个因素的影响:屏幕尺寸(屏幕的像素宽度及像素高度)和屏幕密度。 ...

    Android多分辨率多密度下UI适配方案.

    Android 设计之初就考虑到了 UI 在多平台的适配,它本身提供了一套完善的适配机制,随着版本的发展适配也越来越精确。UI 适配主要受平台两个因素的影响:屏幕尺寸(屏幕的像素宽度及像素高度)和屏幕密度。 在 ...

    android市场普遍的屏幕大小适配

    在Android开发中,屏幕适配是一项至关重要的任务,因为Android设备拥有各种各样的屏幕尺寸和分辨率,从小型手机到大型平板电脑,甚至智能电视。"android市场普遍的屏幕大小适配"这一主题聚焦于如何确保应用程序在...

    android屏幕适配工具

    总的来说,"android屏幕适配工具"通过自动化的方式,减轻了开发者处理多分辨率适配的负担,使应用能够在各种Android设备上呈现一致的用户体验。同时,开发者还需要了解和运用Android提供的各种布局和单位,以实现...

    Android多屏幕适配介绍

    ### Android多屏幕适配介绍 #### 一、屏幕适配基础概念 在开发Android应用时,考虑到设备多样性和用户需求的广泛性,开发者必须确保应用能够良好地运行于各种不同尺寸和密度的屏幕上。这就涉及到了Android的多屏幕...

    android分辨率适配,xml自动生成工具

    本工具,名为“android屏幕分辨率适配,静态xml制作工具”,专门解决这一问题,帮助开发者快速、有效地生成适用于各种屏幕分辨率的XML布局文件。 在Android系统中,屏幕适配主要通过使用不同密度和尺寸的资源文件夹...

    Android 处理HTML-HTML适配屏幕.pdf

    为了实现良好的屏幕适配,开发者需要充分理解Android的屏幕分类和资源管理机制,利用dp单位和比例缩放来设计可扩展的UI,同时配合WebView的特性处理HTML内容。此外,测试是确保适配成功的关键,开发者应该在多种真实...

    Android应用源码之android多分辨率适配 ,判断平板还是手机,等比例缩小图片-IT计算机-毕业设计.zip

    本项目"Android应用源码之android多分辨率适配,判断平板还是手机,等比例缩小图片"提供了一个很好的学习资源,帮助开发者了解如何在Android平台上进行有效的屏幕适配和图像处理。 首先,Android多分辨率适配主要...

    屏幕适配需要的工具

    综上所述,这个压缩包提供的工具和资源旨在帮助开发者有效地解决Android屏幕适配问题,通过自定义库和自动化脚本减少手动调整的工作量,并确保应用在不同设备上的表现一致性。开发者应学习如何利用这些工具,结合...

    AndroidAutoSize,一款低成本的安卓屏幕适配解决方案。.zip

    - AndroidAutoSize支持API 14及以上的版本,覆盖了大部分现代Android设备。 - 对于不支持注解处理的旧版本,可以通过使用`AutoSizeConfig`类手动配置适配规则。 4. **优点** - **降低开发成本**:开发者无需为每...

    Android 屏幕适配

    在Android开发中,屏幕适配是一项至关...总的来说,Android屏幕适配是一个涉及多个层面的过程,需要开发者深入理解Android的屏幕适配机制,并结合各种工具和技术,确保应用能在各种设备上呈现一致且良好的用户体验。

    android屏幕适配

    Android屏幕主要分为四种尺寸:小(small)、正常(normal)、大(large)和超大(xlarge)。这些尺寸基于屏幕对角线长度,但实际设备尺寸并不完全对应这些分类。同时,屏幕密度是指像素在物理空间中的分布,有低...

    Android屏幕适配

    Android屏幕适配是Android开发中不可或缺的一环,因为Android设备有着多样化的屏幕尺寸和密度,从手机到平板,从低密度到高密度,这需要开发者确保应用能在各种设备上正常显示并提供良好的用户体验。Android系统提供...

    Android的通知栏多版本适配

    本教程将详细介绍如何解决Android通知栏图标显示为小黑块的问题,以及如何在Android 8.0(Oreo)及以上版本进行适配,并判断不同版本的通知栏开启状态。 首先,我们来谈谈通知栏图标显示为小黑块的问题。这通常是...

    Android 手机屏幕适配解决办法

    总结来说,Android屏幕适配是一个多层面的工程,涉及布局设计、资源管理以及代码编写。开发者需要充分理解屏幕尺寸、分辨率和像素密度的概念,结合Android提供的工具和机制,灵活运用各种适配策略,以实现应用在各种...

    android:环信demo(已屏幕适配)

    在这个“android:环信demo(已屏幕适配)”项目中,我们可以看到一个已经过优化的示例应用,它不仅包含了环信的基本功能,还进行了屏幕适配,以便在不同尺寸和分辨率的Android设备上良好运行。 1. **环信SDK集成**:...

    android自适应屏幕demo

    在Android开发中,屏幕适配是一项至关重要的任务,因为Android设备有着各种各样的屏幕尺寸和分辨率,从手机到平板,甚至是智能电视。"android自适应屏幕demo" 是一个旨在帮助开发者掌握屏幕适配技巧的示例项目。在这...

    今日头条屏幕适配方案框架

    4. **支持多维度适配**:不仅支持横竖屏切换的适配,还支持多种屏幕尺寸、分辨率的设备,包括但不限于手机、平板等。 5. **简化适配过程**:使用AndroidAutoSize框架,开发者无需为每个UI组件单独设置尺寸,减少...

Global site tag (gtag.js) - Google Analytics