精华内容
下载资源
问答
  • android大屏显示

    2018-01-27 17:00:43
    android版的LED显示屏,通过girdview显示通知内容,后台通过网络获取要显示内容
  • Android大屏幕适配demo

    2018-02-02 10:51:18
    Android大屏幕适配demo,这个是仿照郭林文章中的例子,他的例子是用eclipse写的,直接运行会不兼容最新的sdk,我改成了AndroidStudio可以直接运行的demo.郭林此代码文章的连接 ...
  • android 显示大屏幕For many people, Android is synonymous with smartphones, unsurprising considering that over 2.5 billion users run Android on smartphone devices. However, Android devices now come in ...

    android 显示大屏幕

    For many people, Android is synonymous with smartphones, unsurprising considering that over 2.5 billion users run Android on smartphone devices. However, Android devices now come in many different shapes, sizes, and form factors: from wearables and fitness devices to cars, laptops, and TVs.

    对于许多人来说,Android是智能手机的代名词,考虑到超过25亿用户在智能手机设备上运行Android,这不足为奇。 但是,Android设备现在具有许多不同的形状,大小和外形:从可穿戴设备和健身设备到汽车,笔记本电脑和电视。

    Phones, tablets, foldable phones, desktops

    In this article, we’re looking at how to build great experiences for the larger display devices: tablets, foldables, laptops, and desktop devices. We are going to cover:

    在本文中,我们正在研究如何为较大的显示设备(平板电脑,可折叠设备,笔记本电脑和台式机设备)构建出色的体验。 我们将介绍:

    • UI and UX considerations

      UI和UX注意事项
    • App continuity

      应用连续性
    • Multi-window environments

      多窗口环境
    • Multi-display environments

      多显示器环境
    • Testing

      测试中

    范式转变 (A paradigm shift)

    When it comes to readying your app for bigger screens it isn’t just the screen size you need to consider. Larger screen form factors affect the way people use your app, how they interact with the UI, and the focus they give your apps.

    在为更大的屏幕准备您的应用程序时,您不仅需要考虑屏幕尺寸。 屏幕尺寸较大会影响人们使用您的应用程序的方式,与UI的交互方式以及他们对应用程序的关注程度。

    People use a smartphone for quick actions, usually while on the move, in portrait mode, interacting with the UI through touch. Smartphone users rarely hook up a second screen, keyboard, and mouse to their phone.

    人们通常在移动时以肖像模式使用智能手机进行快速操作,并通过触摸与UI进行交互。 智能手机用户很少将第二个屏幕,键盘和鼠标连接到手机。

    The tablet form factor is not as mobile: we don’t see people running around cities on their tablets. Users generally do more complex actions on tablets, spend more time in an app, and commonly work in landscape. However, UI interaction remains touch focused.

    平板电脑的外形不那么移动:我们看不到人们在平板电脑上到处跑。 用户通常在平板电脑上执行更复杂的操作,在应用程序中花费更多的时间,并且通常在横向模式下工作。 但是,UI交互仍以触摸为重点。

    Spanning both of these interaction paradigms are foldable devices. While you will largely apply the learnings from smartphone and tablet form factors, foldable bring the challenge of extreme aspect ratios, from 21-to-9 when folded to nearly 1-to-1 when unfolded.

    跨越这两个交互范例的都是可折叠设备。 尽管您将大量应用从智能手机和平板电脑外形尺寸中获得的经验,但可折叠带来了极高的长宽比挑战,折叠时从21到9到展开时几乎从1到1。

    In desktop environments we have the largest screens, users interacting with apps for longer, focused on achieving specific tasks. It is also, keyboard and trackpad first. Some devices don’t have touch screens, so many of the assumptions about how people interact with a UI are no longer valid. This environment is landscape first. Users also have expectations from other desktop environments, particularly the ability to use multiple windows where apps can be resized at will to take on almost any orientation or aspect ratio.

    在桌面环境中,我们拥有最大的屏幕,用户与应用程序互动的时间更长,专注于完成特定任务。 同样,键盘和触控板也是第一位。 有些设备没有触摸屏,因此关于人们如何与UI交互的许多假设不再有效。 此环境首先是景观。 用户还对其他桌面环境抱有期望,特别是能够使用多个窗口,在这些窗口中可以随意调整应用程序的大小,以适应几乎任何方向或宽高比。

    So, compared to it’s smartphone version, as you think about how to handle different screen sizes and aspect ratios, you will need to consider new layouts and navigation patterns, and the resources to support them.

    因此,与智能手机版本相比,考虑如何处理不同的屏幕尺寸和宽高比时,您需要考虑新的布局和导航模式,以及支持它们的资源。

    UX和UI注意事项 (UX and UI considerations)

    处理不同的宽高比 (Handle diverse aspect ratios)

    On devices where your app takes up the entire screen, large-screen form factors mean you need to allow for aspect ratios of 1 to 1 all the way to 21 by 9. On desktop form factors users may apply even more extreme aspect ratios. Take a communication app, users may place it in a tall, narrow window at the edge of the screen so they can view and respond to messages while working with another app that occupies the rest of the screen.

    在您的应用占据整个屏幕的设备上,大屏幕尺寸意味着您需要将宽高比从1到1一直到21 x9。在台式机尺寸上,用户可能会应用甚至更高的宽高比。 以通信应用程序为例,用户可以将其放置在屏幕边缘的一个狭窄的高大窗口中,以便他们可以在与另一个占用屏幕其余部分的应用程序一起查看和响应消息。

    There is no magic bullet to addressing this diversity of aspect ratios, you will need to test and support these as best as possible.

    解决宽高比的多样性没有万能的法宝,您将需要尽可能地对其进行测试和支持。

    However, if your app’s content is unsuitable for certain aspect ratios use the minAspectRatio flag, introduced in Android 10, or the maxAspectRatio flag to constrain your app within workable aspect ratios.

    但是,如果您的应用内容不适合某些长宽比,请使用Android 10中引入的minAspectRatio标志或maxAspectRatio标志将您的应用限制在可行的长宽比内。

    导航模式 (Navigation patterns)

    Navigation patterns can break when you start supporting a variety of different devices. For example, take bottom navigation, here in a simple photo viewer app.

    当您开始支持各种不同的设备时,导航模式可能会中断。 例如,在一个简单的照片查看器应用程序中进行底部导航。

    Phone and Desktop screens

    This navigation works well on smartphones. It’s easy to tell where the touch targets are, where one item ends and the other begins. However, when running on a desktop environment, with a wide display, it becomes hard to figure out where items end and what is actionable.

    此导航在智能手机上效果很好。 很容易分辨出触摸目标在哪里,一个项目在哪里结束而另一个项目在哪里开始。 但是,在宽屏的桌面环境中运行时,很难确定项目的结束位置和可操作的内容。

    For large-screen, a better approach is to place options on the left side of the screen. If somebody is using your app on a tablet, this position places the options close to where their hand holds the device, making selection more convenient.

    对于大屏幕,更好的方法是将选项放在屏幕的左侧。 如果有人在平板电脑上使用您的应用程序,则此位置会将选项放置在他们手握设备的位置附近,从而使选择更加方便。

    Desktop screen screenshot

    Left-side navigation is also a paradigm people are used to from web pages.

    左侧导航也是人们习惯于从网页上浏览的范例。

    版面 (Layouts)

    The photo viewer example shows that when you simply reuse a smartphone layout on wide screens, lists of items leave a lot of whitespace. Making better use of the space doesn’t mean applying a master-detail pattern and adding in as much content on the screen as possible. You should think about ways to surface more information or make tasks more efficient.

    照片查看器示例显示,当您在宽屏上简单地重复使用智能手机布局时,项目列表会留下很多空白。 更好地利用空间并不意味着应用主从模式并在屏幕上添加尽可能多的内容。 您应该考虑增加信息或使任务更有效率的方法。

    For example, option items in an overflow menu could be pulled out. So, instead of having to make three taps to edit, people can select that option directly now that there’s room to place it there.

    例如,溢出菜单中的选项可能会被拉出。 因此,由于有足够的空间可以放置它,因此人们不必直接三按即可进行编辑。

    Mobile phone screenshot

    Larger screens also make it possible to deliver more immersive experiences. For example, in a media-viewing or productivity app, there are many more ways to keep people engaged. It’s worth noting though, there is no one-size-fits-all solution to using this extra space.

    更大的屏幕还可以提供更身临其境的体验。 例如,在媒体查看或生产力应用程序中,还有许多其他方法可以使人们参与其中。 但是,值得注意的是,没有一种千篇一律的解决方案来使用此额外空间。

    Meanwhile, it’s worth checking out the Material Studies for inspiration. The Material design team have created design studies for several products with complete design mockups.

    同时,值得查阅材料研究的灵感。 材料设计团队已经使用完整的设计模型为几种产品创建了设计研究。

    One of the studies is Reply, an email client created with designed goals of clarity, legibility, intuition, and ease of use while projecting friendliness and competence for its brand.

    其中一项研究是Reply, 一个电子邮件客户端 ,旨在创建清晰,易读,直观,易于使用的电子邮件客户端 ,同时为其品牌设计友好性和竞争力。

    All devices displaying the same page.

    In this study, the message content is not changed significantly between the various screen sizes. However, navigation changes from a bottom nav in the smartphone layout to a nav drawer on larger screens, which pops out by default on the largest screens.

    在这项研究中,消息内容在各种屏幕尺寸之间没有显着变化。 但是,导航从智能手机布局中的底部导航更改为大屏幕上的导航抽屉,默认情况下,导航抽屉会在最大屏幕上弹出。

    This example shows how the extra space on larger screens doesn’t need to be overloaded with additional information, but that whitespace can be used to make content easier to read.

    此示例说明了如何在较大屏幕上的多余空间不需要附加其他信息,而可以使用空白使内容更易于阅读。

    Another study is Rally, a finance app, that is designed to show as much information as possible so users can quickly see what they need to make decisions about their finances, then get out and get on with their life.

    另一项研究是金融应用程序Rally ,该应用程序旨在显示尽可能多的信息,以便用户可以快速了解自己做出财务决策所需的内容,然后下手并继续生活。

    All devices displaying the same screen

    输入模式 (Input patterns)

    As form factors move towards the desktop, it becomes less likely that touch is the input medium used. Input could be through a stylus or mouse and keyboard. Therefore, you need to consider how to bring some of the input paradigms you see on desktop platforms to your app.

    随着外形向台式机发展,触摸成为使用的输入介质的可能性越来越小。 输入可以通过手写笔或鼠标和键盘进行。 因此,您需要考虑如何将桌面平台上看到的一些输入范例带入您的应用程序。

    For example, consider handling right-click (context) actions, which you do by setting a contextClickListener and mapping long-press behavior to right clicks.

    例如,考虑处理右键单击(上下文)操作,您可以通过设置contextClickListener并将长按行为映射到右键单击来进行操作。

    Another useful technique to help show people that things are actionable are hover actions. For example, you can change colors or elevation when hovering over action items using setOnHoverListener like this:

    悬停动作是另一种有用的技术,可帮助人们向人们展示事物是可操作的。 例如,您可以使用setOnHoverListener将鼠标悬停在操作项上时更改颜色或高程,如下所示:

    yourView.setOnHoverListener{ view, motionEvent ->
      when (motionEvent.actionMasked) {
        MotionEvent.ACTION_HOVER_ENTER -> {
          // UI change to highlight item
        }
        MotionEvent.ACTION_HOVER_EXIT -> {
          // Undo highlight
        }
      }
    }

    Or update the mouse pointer, for example to change it to a hand icon to indicate a grab or select function. This is a simple one-line implementation:

    或更新鼠标指针,例如将其更改为手形图标以指示抓取或选择功能。 这是一个简单的单行实现:

    yourView.setOnHoverListener { view, motionEvent ->
     // Change to the hand icon that users expect when
     // hovering over something actionable
     View.pointerIcon = 
       PointerIcon.getSystemIcon(context, PointerIcon.TYPE_HAND)
     false
    }

    应用连续性 (App continuity)

    App continuity is the capability of an app to seamlessly restore the user state when it receives a configuration change, for example, making sure it is in the same edit position in text or playback location in a video.

    应用程序连续性是应用程序在收到配置更改时无缝恢复用户状态的功能,例如,确保它在文本中的相同编辑位置或视频中的播放位置。

    In smartphones the main case, rotation, is generally context-based, such as switching to landscape to view a video. On larger screen devices, with their support for multi-window, the focus for app continuity becomes the need to redraw and re-layout your app with minimal jank. In this animation, the Play Store app goes from a smaller window with a bottom nav to a large window with left-side nav.

    在智能手机中,旋转通常是基于上下文的,例如切换到风景以观看视频。 在大屏幕设备上,由于它们支持多窗口,因此应用程序连续性的重点变成了以最小的刺痛重新绘制和重新布局应用程序的需求。 在此动画中,Play商店应用从具有底部导航的较小窗口变为具有左侧导航的大窗口。

    Animation of an app adapting to the changing screen

    To achieve a smooth transition make sure your onCreate and lifecycle methods can be cycled quickly. To do this, ensure you’re not performing network operations or large memory reads on those methods. In addition, these types of task performed on those methods often cause crashes, making for a bad user experience.

    为了实现平稳过渡,请确保可以快速循环使用onCreate和生命周期方法。 为此,请确保您没有执行网络操作或对这些方法进行大内存读取。 此外,在这些方法上执行的这些类型的任务通常会导致崩溃,从而带来不良的用户体验。

    The resizeableActivity flag is a manifest flag introduced to indicate whether an app supports multi-window and multi-display environments. Although, setting this to false does not mean that your activity never needs to resize. For example, on a foldable, if somebody unfolds the device you have to handle configuration changes correctly and make sure that you’re restoring the correct state.

    resizeableActivity标志是引入的清单标志,用于指示应用程序是否支持多窗口和多显示环境。 虽然将其设置为false并不意味着您的活动永远不需要调整大小。 例如,在可折叠设备上,如果有人展开设备,则必须正确处理配置更改,并确保要恢复正确的状态。

    But, if you have an activity that is set so it cannot be resized and its orientation is locked the new compat mode in Android 10 help guarantees that your app won’t get a configuration change when a device is unfolded.

    但是,如果您设置的活动无法调整大小且其方向已锁定,则Android 10中的新兼容模式可确保在设备展开时您的应用不会更改配置。

    Activity on external screen when folded pointing to activity running in compat mode when unfolded

    In compat mode, in the bottom-right corner, there is an activity or application restart button for the user to restart the app. This button enables your app to get the new global config and draw on the available screen.

    在兼容模式下,右下角有一个活动或应用程序重新启动按钮,供用户重新启动应用程序。 通过此按钮,您的应用可以获取新的全局配置并在可用屏幕上绘制。

    处理配置更改 (Handling configuration changes)

    When a device is unfolded, apps get configuration changes for smallestScreenSize, screenSize, and screenLayout. If you’re not handling this yourself, you should use onSaveInstanceState and ViewModels to store your data and the user state as the configuration changes.

    展开设备后,应用程序会更改MinimumScreenSize,screenSize和screenLayout的配置。 如果您自己不处理此问题,则应使用onSaveInstanceState和ViewModels在配置更改时存储数据和用户状态。

    If you are handling it yourself in your manifest, you’ll get a callback for handleConfigChange and can swap out layouts or resources.

    如果您自己在清单中处理它,则将获得handleConfigChange的回调,并且可以换出布局或资源。

    For the best experience, you should declare resizeableActivity to be true in your manifest. And, it’s recommended that you let the OS handle as many of these configuration changes as possible, given the number of edge cases where you may miss something, such as swapping out resources for different display densities.

    为了获得最佳体验,您应该在清单中声明resizeableActivity为true。 并且,建议您考虑到可能遗漏某些情况的极端情况(例如为不同的显示密度交换资源),让操作系统处理尽可能多的这些配置更改。

    多窗口 (Multi-window)

    多次恢复 (Multi-resumed)

    On devices with large displays, people want to use apps side-by-side in a multi-window environment. Android 10 introduces an important change for managing this type of environment: multi-resumed.

    在具有大显示屏的设备上,人们希望在多窗口环境中并排使用应用程序。 Android 10引入了一项重要的更改来管理这种类型的环境:多恢复。

    Prior to Android 10, in a multi-window environment, only one of the visible activities is in the RESUMED state. This can be confusing for the user, as there is no visual indication of which activity is RESUMED.

    在Android 10之前的版本中,在多窗口环境中,只有可见活动之一处于RESUMED状态。 这可能会使用户感到困惑,因为没有视觉指示表明恢复了哪个活动。

    With multi-resumed, all the visible activities are in the RESUMED state. However, apps can still end up in a PAUSED state where, for example, a transparent activity is on top of the activity or the activity is not focusable, such as in a picture-in-picture.

    使用多次恢复时,所有可见活动都处于恢复状态。 但是,应用程序仍可能最终处于“暂停”状态,例如,透明活动位于该活动之上,或者该活动不可聚焦(例如画中画)。

    This change has been made in a way that minimizes the alterations you need to make: in most cases there should be no changes required to your app to work in multi-resumed. However, you may need to make changes for resources that can only handle exclusive access.

    进行此更改的方式可以最大程度地减少您需要进行的更改:在大多数情况下,您的应用无需进行任何更改即可多次恢复工作。 但是,您可能需要对只能处理独占访问的资源进行更改。

    Illustration of a person within the multi-window environment.

    For example, if there are three activities wanting to make use of the camera, only one can access the camera. In this case you need to handle the onDisconnect callback from the camera and listen for camera availability. Note that setting resizeActivity to false won’t guarantee access to these resources because you can have a floating activity on top of your activity or secondary display with an activity that wants to use the camera.

    例如,如果有三个活动要使用摄像机,则只有一个可以访问摄像机。 在这种情况下,您需要处理摄像机的onDisconnect回调并监听摄像机的可用性。 请注意,将resizeActivity设置为false不能保证对这些资源的访问,因为您可以在活动或辅助显示的顶部放置一个浮动活动,而该活动要使用相机。

    Android 10 introduces a new callback, onTopResumedActivityChanged, where the activity is notified when it’s the “top” resumed one.

    Android 10引入了一个新的回调onTopResumedActivityChanged ,该活动在“顶部”恢复活动时得到通知。

    protected void onTopResumedActivityChanged(boolean topResumed) {
      if (topResumed) {
        // Top Resumed activity
        // Can be a signal to re-acquire exclusive resources
      } else {
        // No longer the top resumed activity
      }
    }

    This translates to the RESUMED state for Android 9 and earlier.

    这会转换为Android 9及更低版本的RESUMED状态。

    拖放式 (Drag-and-drop)

    Drag-n-drop is not a new feature in Android, but it’s something that makes a lot of sense when working in a multi-window environment. Especially for productivity applications, users want to use drag-n-drop for text and images.

    拖放不是Android中的新功能,但是在多窗口环境中工作时,这很有用。 特别是对于生产力应用程序,用户希望对文本和图像使用拖放功能。

    As adding drag-n-drop can be involved, we recommend that you check out the Android Developer guide, where you can find comprehensive documentation and some great code examples.

    由于可能需要添加拖放功能,因此我们建议您查阅Android开发者指南,在其中可以找到全面的文档和一些出色的代码示例

    了解更多 (Find out more)

    We have covered a lot of ground in this article and reviewed most of the key things you need to be doing to get your app working on larger screens. Find out more about foldables on this guide or building apps for ChromeOS on the Apps for Chrome OS guide.

    我们在本文中介绍了很多内容,并回顾了使应用程序在更大的屏幕上运行所需的大多数关键操作。 在此指南中找到有关可折叠设备的更多信息在Apps for Chrome OS指南中为ChromeOS构建应用程序。

    For further insights, tune into the Apps, Games, and Insights podcast episode Building for larger screens and better game experience featuring insights from game developer Gameloft.

    若要获得更多见解,请收听“ 应用程序,游戏和见解”播客插曲集“ 构建”以获得更大的屏幕和更好的游戏体验 包含游戏开发商Gameloft的见解。

    翻译自: https://medium.com/androiddevelopers/android-at-large-how-to-bring-optimized-experiences-to-the-big-screen-a50a6784e59d

    android 显示大屏幕

    展开全文
  • 复制代码 android:resizeableActivity=["true" | "false"] 适配方式 2:设置应用支持的最大比例和最小比例适配 为保证应用在主副屏或者大屏态能保证满屏显示,请尽快确保应用可以支撑较高范围的宽高比,避免后续...
    97f81cb975ba875e83e62857c6baf414.png

    2 月底,在西班牙巴塞罗那召开的 MWC2019 华为终端全球发布会上,华为正式发布了 5G 折叠屏手机 HUAWEI Mate X,同时,华为也宣布这款手机将在今年年中上市,消息一出,瞬间刷爆朋友圈。关于这款手机背后的黑科技,相信大家都已经有所了解,我们就不再展开讨论,对于开发者来说,最关心的莫过于折叠屏的适配问题,对此,我们联系到了华为终端的相关技术专家,为大家获取了折叠屏的官方适配方案,以下全文就是适配文档。

    背景和范围

    此文档针对华为 Mate X 以及后续可能的折叠屏产品,提供应用适配的规格要求描述,以及适配指导。以确保应用在折叠屏显示各种形态下,皆可以布局正确,显示美观,并且屏幕物理形态切换时,应用尽可能做到不重启,不中断当前用户业务。

    适用范围

    文档适用于 Android 平台 APP 相关的设计,开发,测试人员等。

    规格描述

    Mate X 物理形态概述

    f40efb11d847852ce2c47f7206124be1.png

    对于通用软件,可能存在如下形态,即:

    • 展开态,全屏点亮工作;
    • 折叠主屏态:折叠态,主屏工作;
    • 折叠副屏态:折叠态:副屏工作。

    静态适配需求规格描述

    大屏静态显示规格:

    1c957b75ef502e2bf1c6361c8654540e.png
    903ef7b82731ac232e408f6de1c1e8a4.png

    大屏规格定义:应用在大屏展开下,可以撑满全屏显示,且在横竖屏切换形态下,布局和操作按键都正常,不出现任意方向的黑边。

    如上图,A 图为撑满全屏,OK、BCD 都是错误的适配规格。

    主屏静态显示规格

    屏幕比例:19.5 : 9

    参照下图:

    b76c6687d360f30eaf086ae5c25dfc2d.png

    副屏静态显示规格

    副屏规格:25 :9

    副屏下,默认不以全屏显示,以主屏比例显示,即在副屏下也显示 19.5:9 居下显示。应用只需要做好 19.5:9 的适配即可,副屏以 19.5:9 在屏幕下方显示由系统统一控制。

    974dd1b0e8c76ad4d11729b1f404b1ae.png

    动态适配需求规格描述

    说明:

    (1)任意形态下打开一个应用,满足以上静态显示规格;

    (2)当用户物理形态切换时,应用需要做到不重启应用,并自动在新的设备形态下按照静态规格布局。

    即:在用户进行展开,折叠等操作, 应用任务不中断,自动适应各种屏幕下的静态布局规格。

    89425f997baaef41e446244febe2d333.png

    设计和开发指导

    大屏布局 UI 设计指导

    如下适配建议以及各应用适合适配类型,仅作为推荐性建议,具体由应用根据各自业务特性进行针对性设计。

    适配建议一:X 轴方向自适应

    说明:

    即,尽量保持 Y 轴方向上元素不变,X 轴方向上自适应。

    示例:

    ed27148deb36504379847ec1b30b0d77.png
    6d7d5785d18e9219a30e05ebceebf341.png
    8fd021c9eaaf22f8ceb99b523e711e48.png

    范围(推荐性):适用于界面元素相对单一,没有大量列表类、或较多显示元素的页面。

    适配建议二:布局内容扩展

    说明:参考 pad 布局显示更多内容,对于区分了手机和 pad 布局的应用,在展开态优先考虑参考 pad 的大屏布局适配展开态界面,显示更多内容;尽量保证 Y 轴方向元素的不变。

    示例:

    5fa77ca8a3979bbe3089e00f72167036.png
    8934bf434e94da60998fc8fda3b9c8f9.png

    范围(推荐性):一般适用于 WEB 类应用,页面特征一般为元素多,适配原则以尽量显示较多元素优先。

    适配建议三:分栏布局

    说明:对于设计过分栏能力的模块,需要在展开态体现分栏布局。

    示例:

    18c45a66fd13d2e197b7e5d9e09c7576.png

    范围:一般有明显 list 二级菜单的元素结构比较适合。

    适配建议四:横竖屏布局一致

    说明:考虑到展开态 8:7.1 的比例,展开态的横屏和竖屏建议一套布局。横竖一致;不对展开态的横屏特殊处理,挪移布局不用体现。

    示例:

    842f21ec34797f0d8b8a6d052bed2a53.png
    8a6d09b3610471164d77ad82dff43c61.png

    适配开发指导

    开发约束

    说明:具备 8:7.1, 19.5:9, 25:9, 三种可能的显示形态。

    强烈建议应用支持可变比例显示(resizeable),在可预见的屏幕比例范围内,都可以做到良好适配。且在比例切换时,应用能够自己处理 screenSize 变化,不需要重走生命周期。总结来说,即要求应用可以完全支持自适应布局,无论静态还是场景切换下。

    适配规格:支持热切换能力

    应用适配折叠屏需要做“屏幕比例适配”和“切换显示比例应用不重启适配”。

    屏幕比例适配

    适配方式 1:应用支持自适应能力(推荐)

    应用只要能做到自适应,在任意比例的屏幕都能做到全屏显示。

    1. 应用如何申明自适应

    807b05202c821b6bde9c17fa2fdd1f02.png

    2. 设置方法:在 manifest 文件的 或 节点中设置 android:resizeableActivity 的值为 true,可声明应用支持自适应显示,Activity 将能以分屏和 freeform 模式启动。

    复制代码

    android:resizeableActivity=["true" | "false"]

    适配方式 2:设置应用支持的最大比例和最小比例适配

    为保证应用在主副屏或者大屏态能保证满屏显示,请尽快确保应用可以支撑较高范围的宽高比,避免后续反复适配,华为建议最高宽高比支持到 2.4 或者更大(可以确保在主屏、辅屏下满屏显示,如果设置的比例小于 2.4 可能因为最终屏幕比例与当前规格存在差异引起应用无法全屏显示),最小宽高比为 1:1(可以确保在展开态大屏下满屏显示)。

    最大宽高比申明: maxaspecratio:2.4(2.4 表明在主副屏下满屏显示)

    Android 7.1 及以下版本,在 manifest 文件的节点中增加 数据,设置最大支持比例:

    复制代码

    Android 8.0 及以上版本,在 manifest 文件的 节点中增加 android:MaxAspectRatio 属性,声明最大支持比例:

    复制代码

    < activity android:maxAspectRatio="2.4"> ... 

    最小宽高比申明: minaspectratio:1.0 (App | Activity Level )

    Q 之前版本:在 manifest 文件的 节点中增加 数据,设置最小支持比例(声明为 1.0 即表示在展开态大屏下满屏显示):

    复制代码

    < meta-data android:name="android.min_aspect" android:value="1.0" />

    Q 版本之后支持:在 manifest 文件的 节点中增加 android:MinAspectRatio 属性,声明最小支持比例:

    复制代码

      ... 

    切换显示比例应用不重启适配

    应用如何自处理 screenSize 事件,确保热切换时不重走生命周期。

    在 manifest 文件的 节点中的 android:configChanges 属性增加 screenSize|orientation|smallestScreenSize 字符串,当屏幕比例变化时,系统会回调 Activity 的 onConfigurationChanged() 方法,而避免 Activity 重新启动。

    复制代码

    android:configChanges="screenSize|orientation|smallestScreenSize"

    应用复写 onConfigurationChanged() 方法,在方法中实现针对不同比例下界面布局的相应调整,如切换布局、调整控件位置和间距等。

    调试

    模拟调试

    如果开发者没有折叠屏手机,可以通过修改屏幕分辨率来模拟调试:

    1. 主屏(折叠)切全屏(展开)模拟方法:

    • 预先将手机设置主屏分辨率:

    adb shell wm size 1136x2480

    • 通过修改手机分辨率为全屏分辨率模拟状态切换:

    adb shell wm size 2200x2480

    2. 全屏(展开)切主屏(折叠)模拟方法:

    • 预先将手机设置全屏分辨率:

    adb shell wm size 2200x2480

    • 通过修改手机分辨率为主屏分辨率模拟状态切换:

    adb shell wm size 1136x2480

    现在华为官网已经上线预约 Mate X 适配真机测试的活动,有兴趣的开发者可通过此链接了解:

    https://developer.huawei.com/consumer/cn/activity/709

    展开全文
  • Android大屏幕设置(平板电脑开发)

    千次阅读 2018-12-26 14:33:32
    如果使用android进行大屏幕开发,比如开发基于android平台的平板电脑应用,我们需要进行如下的设置。    1、需要在AndroidManifest.xml中添加如下代码:    &lt;supports-screensandroid:largeScreens=”...

    如果使用android进行大屏幕开发,比如开发基于android平台的平板电脑应用,我们需要进行如下的设置。
      
      1、需要在AndroidManifest.xml中添加如下代码:
      
      <supports-screensandroid:largeScreens=”true”android:anyDensity=”true”/>
      
      这样在虚拟机上显示大屏幕时才不会缩在中间显示。
      
      2、大屏幕虚拟机的创建:
      
      新建虚拟机时,有Built-in栏目,我们一般选择的是Defalut(HVGA)这是普通的屏幕,选择WVGA800,选择Resolution,然后自己输入需要的分辩率即可。
      
      3、新建完毕后,启动这个虚拟机就可以看到大屏幕了。

    展开全文
  • NULL 博文链接:https://cindy-lee.iteye.com/blog/1662127
  • 公司现在弄了一个大屏幕的android显示器,只不过屏幕很大分辨率很低,原先在手机上可以正常显示的应用放到这个应用上后显示很难看,有没有什么方法解决这个问题?谢谢 我觉得问题的关键就是分辨率太低,160dp左右...
  • android 电子白板

    2015-10-28 17:00:17
    根据手势画出滑动轨迹、只是一个demo,还需要完善,可以用来学习Android开发,需要的朋友可以下载
  • 本实例是一个电子白板程序,基于Android的,可以在Android大屏上使用,效果还是不错,有兴趣的朋友可以下载下来学习下。适用于大屏白板开发的Android爱好者
  • android大屏手机自适应问题

    千次阅读 2012-09-25 10:50:08
    android:normalScreens="true" android:largeScreens="true" android:xlargeScreens="true" android:anyDensity="true" /> 不过android:xlargeScreens如果在2.1的SDK上面是找不到资源的。3.0不报错。中间的...

    前几天做项目遇到个问题,软件在很多手机上测了没问题,但是三星GALAXY Note I9220上面只显示一点点。 按道理说,只要在布局文件或者java代码中设置填充父控件,图片放到相应的drawable下面后,应该是没有什么问题的。
    后来就,搜了一下api文档,如下。

    http://api.apkbus.com/guide/topics/manifest/supports-screens-element.html
    大致就是说,要使软件基于目标设备屏幕密度全屏,需要在manifest配置文件中添加相应设置,如下:

    <supports-screens android:smallScreens="true"
    		android:normalScreens="true" android:largeScreens="true"
    		android:xlargeScreens="true" android:anyDensity="true" />

    不过android:xlargeScreens如果在2.1的SDK上面是找不到资源的。3.0不报错。中间的一些版本我的eclipse没装所以没有亲自测。可能是3.0主要用在pad上面,所以对xlargeScreens这种超大屏才出现SDK支持吧。

    展开全文
  • android全屏弹出框

    热门讨论 2012-11-28 13:34:11
    android全屏弹出框,AlertDialog
  • android 触摸屏的调试

    2013-12-21 11:33:39
    android 触摸屏的调试,简述了添加和调试的方法。
  • 仿小米等壁纸App的壁纸设置界面,SeekBar控制HorizontalScrollView滚动。
  • 更多的资源更多的公司投精力进去优化与改进,开始慢慢向PC领域发展,例如出现X86版本的android等等,这个趋势也在移动芯片霸主ARM的road map里得到体现,现在基于ARM的设备开始走向大屏,开始与PC市场有交叉和竞争。...
  • 我们创建一个最简单的android应用,一个Activity,内容是一张图片,图片放在drawable-hdpi目录下。布局文件: android:layout_width="fill_parent" android:layout_height="fill_parent" android:background=...
  • 在开发大屏幕的广告机时,发现原先设计的代码在广告机上显示出现适配问题。...Android开发:最全面、最易懂的Android屏幕适配解决方案 Android代码中设置字体大小 Android 增强版百分比布局库 为了适配而扩展
  • 大屏android手机动画丢帧的背后
  • Android 中刷新过时蓝牙连接的逻辑。 不要直接使用该应用程序(您必须先配对您的设备)。 这只是一个演示,用于展示如何在 BT connetcion 过时时对其进行刷新。 背景: 有时在android中,当连接长时间保持空闲...
  • Android TV 焦点与按键事件分析

    千次阅读 2017-12-12 17:22:37
    Android 电视的人机交互仍旧使用遥控器为主,焦点的重要性在电视上又显现出来了。通过遥控器将方向键或确认键信号 ( 或信息 ) 发送到电视端后,转换为标准按键事件 (KeyEvent) ,而按键事件分发最终目标就是焦点。 1...
  • 实现侧边栏,实现底部导航栏,模仿QQ 微信。页面精美,代码简单。
  •  2007 年 Google 推出了基于 Linux 的开源手机操作系统——Android。短短几年后,Android已经成为全球最有影响力的移动设备操作系统(没有之一)。据相关报道,为顺应越来越多的PC厂商为对抗ipad选择使用...
  • Android 屏幕适配总结

    千次阅读 2020-04-07 23:02:55
    Android 适配相关的文章有很多了,我阐述一下自己总结后的理解与解决方式,本文从为什么需要适配为起点,到官方推荐的适配方式的用法为结束。 一、为什么需要适配 1.与屏幕相关的概念 1)屏幕尺寸 屏幕大小...
  • https://blog.csdn.net/cpcpcp123/article/details/82049660
  • androidx和 android AlertDialog 都是一样的效果, 显示垂直居中靠右, 但是 oppo Color OS V7.1 (Android 10)显示正常 ,估计手机厂商修改AOSP改出问题了 alertDialog.show() //放在show()之后,不然有些属性是没有...
  • 5.8使用AndroidPlot显示图表和图表 问题 您希望在Android应用程序中以图形方式显示数据。 解 使用适用于Android的许多第三方图形库之一。在这个例子中,我们将使用AndroidPlot(一个开源库)来描述一个简单的图形。...
  • Android端控制LED屏

    千次阅读 2018-02-03 13:20:13
    Android端控制LED屏,今天老师给讲了LED屏的协议,写了一个控制LED的程序,为了深入了解,我自己给代码全部加上注释。
  • 基于Android的大屏幕拼接显示系统研究与设计.pdf
  • Android TV 开发与一般Android开发最大的区别在于焦点控制 , 用户在使用Android TV设备主要是通过遥控器操作app。焦点就是让用户知道的直接交互行为。 然而一些app,依据系统对focus的判断,会出现的状况: 上下导航时,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,607
精华内容 5,442
关键字:

android大屏