`

[android UI]应用程序自适应屏幕大小

阅读更多

一:不同的layout

Android手机屏幕大小不一,有480x320, 640x360, 800x480.怎样才能让App自动适应不同的屏幕呢?
其实很简单,只需要在res目录下创建不同的layout文件夹,比如layout-640x360,layout-800x480,所有的layout文件在编译之后都会写入R.java里,而系统会根据屏幕的大小自己选择合适的layout进行使用。

二:hdpi、mdpi、ldpi

在之前的版本中,只有一个drawable,而2.1版本中有drawable-mdpi、drawable-ldpi、drawable-hdpi三个,这三个主要是为了支持多分辨率。

  drawable- hdpi、drawable- mdpi、drawable-ldpi的区别:

  (1)drawable-hdpi里面存放高分辨率的图片,如WVGA (480x800),FWVGA (480x854)

  (2)drawable-mdpi里面存放中等分辨率的图片,如HVGA (320x480)

  (3)drawable-ldpi里面存放低分辨率的图片,如QVGA (240x320)

  系统会根据机器的分辨率来分别到这几个文件夹里面去找对应的图片。

更正:应该是对应不同density 的图片

  在开发程序时为了兼容不同平台不同屏幕,建议各自文件夹根据需求均存放不同版本图片。

备注:三者的解析度不一样,就像你把电脑的分辨率调低,图片会变大一样,反之分辨率高,图片缩小。
屏幕方向:

横屏竖屏自动切换:

可以在res目录下建立layout-port-800x600和layout-land两个目录,里面分别放置竖屏和横屏两种布局文件,这样在手机屏幕方向变化的时候系统会自动调用相应的布局文件,避免一种布局文件无法满足两种屏幕显示的问题。



不同分辨率横屏竖屏自动切换:

以800x600为例
可以在res目录下建立layout-port-800x600和layout-land-800x600两个目录

不切换:


以下步骤是网上流传的,不过我自己之前是通过图形化界面实现这个配置,算是殊途同归,有空我会把图片贴上来。

还要说明一点:每个activity都有这个属性screenOrientation,每个activity都需要设置,可以设置为竖屏(portrait),也可以设置为无重力感应(nosensor)。

要让程序界面保持一个方向,不随手机方向转动而变化的处理办法:

在AndroidManifest.xml里面配置一下就可以了。加入这一行


例如(landscape是横向,portrait是纵向):



另外,android中每次屏幕的切换动会重启Activity,所以应该在Activity销毁前保存当前活动的状态,在Activity再次Create的时候载入配置,那样,进行中的游戏就不会自动重启了!

有的程序适合从竖屏切换到横屏,或者反过来,这个时候怎么办呢?可以在配置Activity的地方进行如下的配置android:screenOrientation="portrait"。这样就可以保证是竖屏总是竖屏了,或者landscape横向。

而有的程序是适合横竖屏切换的。如何处理呢?首先要在配置Activity的时候进行如下的配 置:android:configChanges="keyboardHidden|orientation",另外需要重写Activity的 onConfigurationChanged方法。实现方式如下,不需要做太多的内容:



写一个支持多分辨的程序,基于1.6开发的,建立了三个资源文件夹drawable-hdpi drawable-mdpi drawable-ldpi,里面分别存放72*72 48*48 36*36的icon图标文件。当我在G1(1.5的系统)上测试时,图标应该自适应为48*48才对啊,但实际显示的是36*36。怎么才能让其自适应 48*48的icon图标呢?

解决办法: drawable-hdpi drawable-mdpi drawable-ldpi改成drawable-480X320 drawable-800X480的多分辨支持的文件夹

分享到:
评论

相关推荐

    Android软件自适应屏幕技巧

    ### Android软件自适应屏幕技巧详解 #### 一、基础概念说明 在开发Android应用时,确保用户界面能够自适应各种屏幕尺寸和分辨率是非常重要的。这不仅涉及到用户体验的问题,还关系到应用能否覆盖更广泛的用户群体...

    Android屏幕自适应计算工具 UI设计尺寸换算

    这个名为"Android屏幕自适应计算工具.exe"的文件很可能是一个小型应用程序,它可以方便地进行快速计算。在使用时,用户只需输入或导入设计图中的像素尺寸,工具就会自动计算出dp值,并可能提供相应的代码片段,供...

    android横竖屏切换和自适应屏幕

    在Android应用开发中,横竖屏切换和屏幕自适应是两个关键的概念,它们关系到应用程序在不同设备和屏幕尺寸上的用户体验。以下是对这两个主题的详细解释: **横竖屏切换** 1. **屏幕方向检测**:Android系统可以...

    Android项目关于自适应屏幕方向和大小的一些经验.rar

    综上所述,这个压缩包可能提供了有关如何利用Android平台特性来实现屏幕自适应的具体实例和建议,帮助开发者优化其应用程序,使其在各种设备上呈现出一致且优秀的用户体验。通过学习和实践这些方法,开发者可以提高...

    android自适应屏幕demo

    6. **响应式设计**:借鉴网页开发中的概念,使用如FlexboxLayout或GridLayout实现响应式设计,使UI元素可以根据屏幕大小自动调整布局。 7. **SwiperFragment/ViewPager**:在大屏幕上,可以利用额外的空间显示更多...

    制作android自适应屏幕大小的图片方法.docx

    ### 制作Android自适应屏幕大小的图片方法 在Android应用开发过程中,为了确保应用程序能够兼容各种不同尺寸和分辨率的屏幕,对图像进行适当的优化是非常重要的。本文将详细介绍如何使用不同的Drawable资源来实现...

    android UI自适应验证

    在Android开发中,UI自适应是一项至关重要的任务,它确保应用程序在不同设备上拥有良好的视觉体验,无论设备的屏幕尺寸、分辨率或像素密度如何。"android UI自适应验证"这个项目专注于解决这个问题,通过实际的工程...

    基于Android的关于自适应屏幕方向和大小的一些经验.zip

    在Android开发中,适配不同屏幕的尺寸和方向是一项至关重要的任务,因为它直接影响到应用程序的用户体验。本资源包“基于Android的关于自适应屏幕方向和大小的一些经验.zip”提供了宝贵的实践经验,适合Android初学...

    android安卓开发app如何做到自适应手机屏幕大小,适应不同分辨率的手机.zip

    在Android应用开发中,确保应用程序能够自适应各种手机屏幕大小和分辨率是至关重要的。这不仅可以提供优秀的用户体验,也是Google Play商店对应用质量的基本要求。以下是一些关键知识点,帮助开发者实现这一目标: ...

    Android自适应不同屏幕大小的全部方法

    Android 自适应不同屏幕大小的全部方法是指在 Android 应用程序中实现不同屏幕大小的自适应,包括使用 "wrap_content" 和 "match_parent" 来确定视图的宽和高,根据屏幕的配置来加载合适的 UI 布局,确保正确的布局...

    关于自适应屏幕方向和大小的一些经验.zip

    在安卓应用开发中,自适应屏幕方向和大小是至关重要的,因为不同的设备有着各种各样的屏幕尺寸和纵横比。这份资料“关于自适应屏幕方向和大小的一些经验.zip”包含了两个文件,一个名为“关于自适应屏幕方向和大小的...

    自适应屏幕分辨率,labview自适应屏幕分辨率,LabView

    在LabView编程环境中,自适应屏幕分辨率是一项关键的技术,它使得应用程序能够在不同尺寸和分辨率的屏幕上正确显示,提供良好的用户体验。下面将详细讲解如何在LabView中实现自适应屏幕分辨率的功能。 首先,理解...

    SamsungAdaptive,三星OneUI图标完全自适应!.zip

    三星OneUI图标自适应技术是三星电子为提升用户体验而推出的一种设计策略,它允许应用程序图标根据设备的主题、屏幕尺寸和用户偏好自动调整形状、大小和颜色,以保持界面的统一和美观。在"SamsungAdaptive,三星OneUI...

    关于自适应屏幕方向和大小的一些经验(实用1).zip

    在Android开发中,自适应屏幕方向和大小是开发者必须面对的重要问题。这涉及到用户体验的优化,使得应用程序能在不同尺寸和方向的屏幕上都能正常且美观地显示。以下是一些关于自适应屏幕的关键知识点: 1. **屏幕...

    androidUI设计器

    Android UI 设计器是Android开发中的一个重要工具,它允许开发者直观地设计应用程序的用户界面,无需手动编写XML布局代码。这个工具极大地提升了开发效率,使得非程序员也能参与到UI设计中来,实现快速预览和调整...

    Android屏幕自适应

    在Android开发中,屏幕自适应是一项至关重要的技术,它确保应用程序在不同尺寸和分辨率的设备上都能呈现良好的视觉效果。本文将深入探讨四种实现Android屏幕自适应的方法。 1. **使用dp(density-independent ...

    android屏幕自适应

    6. **响应式UI**:使用RecyclerView和GridLayoutManager等,可以根据屏幕大小动态调整显示的内容。 7. **测试**:使用Android虚拟设备(AVD)模拟不同尺寸和分辨率的屏幕,确保应用在各种设备上的表现。 综上所述...

    Android_surfaceView与layout屏幕适配总结

    `SurfaceView`有自己的绘图表面,独立于应用程序的主线程,这使得它能高效地处理图形渲染,避免阻塞UI线程。然而,由于其独立性,`SurfaceView`在屏幕适配上可能会遇到一些挑战,比如大小和位置的调整。开发者需要...

Global site tag (gtag.js) - Google Analytics