`

android的多屏支持

阅读更多
这个页面收集的数据来自过去14天访问Google Play Store的所有设备。数据包括android版本的分布率、屏幕尺寸和密度的相关数据。
http://developer.android.com/about/dashboards/index.html#

Android运行在不同的设备上(不同的屏幕尺寸、像素密度)。Android系统提供了统一的开发环境,并为兼容每个应用的用户接口完成了大部分工作。同时,系统提供了API允许你针对特殊的屏幕尺寸和密度调整app的UI,比如你可能需要为平板电脑和手机提供不同的UI。

屏幕(screen)相关术语和概念
  • Screen size(屏幕尺寸)
  •     实际物理尺寸Actual physical size
        一般来说,android将所有屏幕尺寸分为:small,normal,large,extra large.
  • Screen density(屏幕密度)
  •     某一物理范围内像素点数量,通常指dpi(dots per inch一英寸内的像素点)
        一般来说,android将所有屏幕密度分为:low, medium, high, and extra high
  • Orientation(排列模式)
  •     从用户角度看屏幕的排列模式,分为风景模式和肖像模式(landscape or portrait),其实就是横向和竖向。值得注意的是,不但不同的设备默认按不同的排列模式操作,在运行中排列模式也可以根据用户旋转屏幕来回切换
  • Resolution(分辨率)
  •     屏幕上总的像素. applications do not work directly with resolution; applications should be concerned only with screen size and density, as specified by the generalized size and density groups.
  • Density-independent pixel (dp 密度-非依赖像素)
  •     虚拟像素单位,用来定义UI布局,用密度-非依赖的方式来表达布局密度或位置。
        dp等于160dpi屏幕的物理像素。运行时,系统根据屏幕实际密度将dp转换成px:px = dp * (dpi / 160)。比如在240dpi的屏幕上,1dp=1.5px。你应该只使用dp作为单位,这样能确保在不同密度的屏幕上获得正确的显示。


最佳实践
对多屏幕支持的目标是,创建能同时在不同屏幕配置的设备上正确表达的APP应用。
1、设置android:layout_width和android:layout_height时,"wrap_content", "fill_parent"或者以dp为单位。同样地,使用sp设置文本size
2、代码中不要出现硬编码像素值
由于性能上的原因和为保持代码简单,android系统使用像素px作为标准单位来表示尺寸、坐标。虽然尺寸使用px表示,但值依然基于当前屏幕密度。比如,myView.getWidth()返回的值为10,在当前屏幕该视图为10像素,但在更高密度的屏幕中其值可能为15.
如果应用在运行时需要处理位图或像素值,请参考这一段
http://developer.android.com/guide/practices/screens_support.html#DensityConsiderations
3、避免使用AbsoluteLayout(绝对布局)
不同于其他布局,绝对布局强制使用固定值定位使其跳出子视图,这就很容易导致用户方案不能兼容不同屏幕。因此,绝对布局从Android 1.5 (API Level 3)开始被deprecated。
可用相对布局代替,比如,你可以定位一个按钮出现在文本组件的右边。
4、使用特定尺寸、密度的资源
虽然系统基于当前屏幕配置扩展你的layout和drawable资源,你可能有需求为不同屏幕密度的设备分别配置相应的drawables,以达到最佳体验。在特定资源目录中配置。比如,想在medium和high密度的屏幕中显示icon。分别创建不同尺寸的icon(如100x100,150x150),置于
res/drawable-mdpi/icon.png   //for medium-density screens
res/drawable-hdpi/icon.png   //for high-density screens

关于合理配置的更多的信息,查看Using configuration qualifiers部分
关于android屏幕支持的详细文档,请参考
http://developer.android.com/guide/practices/screens_support.html

关于Android中dip、dp、sp、pt和px的区别,这篇文章不错
http://greatverve.cnblogs.com/archive/2011/12/27/Android-dip-dp-sp-pt-px.html
分享到:
评论

相关推荐

    Android多屏幕支持Demo

    这个"Android多屏幕支持Demo"是专门为展示如何在Android应用中实现多窗口功能而设计的。在本文中,我们将深入探讨Android多窗口模式的基本概念、实现原理以及如何在实际项目中应用。 一、Android Multi-Window概述 ...

    Android多屏显示-StartActivity

    一、Android多屏支持 1. 屏幕尺寸与密度:Android系统通过Density Independent Pixel (dp)和Scale Independent Pixel (sp)单位来处理不同屏幕的尺寸和密度差异,保证界面元素在各种设备上看起来大小相当。 2. 资源...

    【Android元宇宙】Android 多屏显示-NativeSFDemo

    "Android元宇宙"的提法可能是指将虚拟现实(VR)、增强现实(AR)等元宇宙元素与Android系统的多屏支持相结合,为用户提供更加沉浸式和交互性的体验。在这个背景下,`NativeSFDemo`是一个专门探讨Android多屏显示的示例...

    android 双屏多显, 副屏实现播放功能

    首先,了解Android多显示器支持的基础。从Android 7.0(API级别24)开始,Android引入了`DisplayManager`类,它是处理和控制多个显示屏的核心接口。通过`DisplayManager.getDisplays()`方法,我们可以获取到所有连接...

    android 多屏切换

    综上所述,Android多屏切换涉及布局设计、Fragment管理、动画过渡、响应式设计等多个方面。开发者需要掌握这些技术并结合实际需求,才能打造出流畅且具有吸引力的多屏应用。而`FlingGallery`可能是一个具体的示例,...

    Android O 多屏Touch方案

    在Android O系统中,为了支持多屏显示功能,系统默认采用了镜像(mirror)模式来处理主屏与副屏的显示内容。这意味着主屏和副屏会显示相同的内容,并且它们对于触控事件的响应也是一致的。然而,在某些应用场景下,...

    android多屏异显

    理解并掌握Android多屏异显技术,对于开发这些特定场景的应用至关重要。 首先,我们要知道Android系统的显示架构。Android的显示系统基于SurfaceFlinger服务,它负责合成各个应用的图形层,并将最终图像输出到物理...

    android触摸屏测试程序

    5. 触摸压力测试:某些高级触摸屏支持不同力度的触控,测试程序会检测不同力度下的响应情况。 6. 温度和湿度测试:模拟不同的环境条件,查看触摸屏在极端条件下的工作表现。 三、使用Android触摸屏测试程序 1. ...

    android+双屏异触+上层修改

    3. **android-multi-touchscreen-tutorial.pdf**:这个PDF文档可能是一个教程,详细解释了如何在Android系统中实现多触摸屏的支持。它可能涵盖从驱动开发到用户空间应用接口的全过程,对于理解双屏异触的工作原理...

    androidN多屏幕支持例子

    在Android N(API级别24)中,Google引入了一项名为MultiWindow的支持,这使得应用程序能够在设备屏幕上同时显示多个活动窗口。本示例项目“androidN多屏幕支持例子”是针对这一特性的实践应用,旨在帮助开发者理解...

    Android平台下双屏切换显示的设计

    双屏切换显示的设计与实现是Android平台向多屏时代迈进的重要一步。通过优化窗口管理器、利用Surface作为通信桥梁,以及改进底层窗口系统,可以实现更加灵活和高效的多屏显示解决方案。这对于提升用户体验、增强移动...

    4种Android屏幕自适应解决方案

    目前最为推荐的Android多屏幕自适应解决方案。 该属性的作用是决定控件在其父布局中的显示权重,一般用于线性布局中。其值越小,则对应的layout_width或layout_height的优先级就越高,一般横向布局中,决定的是...

    Android实现两块屏幕分屏显示

    2. **多显示器支持**:对于工控机连接多块显示屏的情况,开发者需要利用Android的Display API。`DisplayManager`类提供了获取和管理设备上所有显示的信息。通过`DisplayManager.getDisplays()`可以获取到所有已连接...

    Android多屏显示-Presentation

    `Presentation`类是Android对多屏显示支持的核心。它继承自`Dialog`,设计用于在非活动窗口上下文中显示临时UI,例如在外部屏幕上展示。创建`Presentation`时,需要传入一个`Context`(通常是你当前的`Activity`)和...

    android 多触摸屏测试程序

    一、Android多触摸屏基础 Android系统自3.0(Honeycomb)版本开始全面支持多点触控,允许用户通过两个或更多手指同时进行操作,如缩放、旋转、滑动等手势。系统通过监听和处理MotionEvent事件来实现这一功能。 二、...

    android手机多点触屏测试

    Android系统支持多种触摸事件,包括ACTION_DOWN(触摸开始)、ACTION_UP(触摸结束)、ACTION_MOVE(触摸移动)等,以及ACTION_POINTER_DOWN和ACTION_POINTER_UP用于处理额外的触控点。 标题中的“android手机多点...

    android多屏幕多分辨率适配

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

    android同屏

    在实际应用中,"android同屏"技术广泛用于远程协助、演示、游戏直播、设备调试等多个场景。开发者可以利用这些工具提高工作效率,而普通用户则可以方便地在大屏幕上享受手机内容。通过持续的优化和创新,Android同屏...

    android 多屏显示sample代码

    在Android开发中,多屏显示是一项重要的功能,它允许应用程序适应不同尺寸和分辨率的设备屏幕。这个"android 多屏显示sample代码"是为开发者...这份样本代码涵盖了上述关键点,是学习和应用Android多屏显示的宝贵资源。

Global site tag (gtag.js) - Google Analytics