`
Jacular
  • 浏览: 185313 次
  • 性别: Icon_minigender_1
  • 来自: 云南
社区版块
存档分类
最新评论

Android之屏幕适配

 
阅读更多

一:不同的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)

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

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

三:横屏竖屏

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

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

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

在AndroidManifest.xml里面配置一下就可以了。加入这一行android:screenOrientation="landscape"。
例如(landscape是横向,portrait是纵向):

Xml代码 复制代码 收藏代码
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  3. package="com.ray.linkit"
  4. android:versionCode="1"
  5. android:versionName="1.0">
  6. <application android:icon="@drawable/icon" android:label="@string/app_name">
  7. <activity android:name=".Main"
  8. android:label="@string/app_name"
  9. android:screenOrientation="portrait">
  10. <intent-filter>
  11. <action android:name="android.intent.action.MAIN" />
  12. <category android:name="android.intent.category.LAUNCHER" />
  13. </intent-filter>
  14. </activity>
  15. <activity android:name=".GamePlay"
  16. android:screenOrientation="portrait"></activity>
  17. <activity android:name=".OptionView"
  18. android:screenOrientation="portrait"></activity>
  19. </application>
  20. <uses-sdk android:minSdkVersion="3" />
  21. </manifest>
<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
      package="com.ray.linkit" 
      android:versionCode="1" 
      android:versionName="1.0"> 
    <application android:icon="@drawable/icon" android:label="@string/app_name"> 
        <activity android:name=".Main" 
                  android:label="@string/app_name" 
                  android:screenOrientation="portrait"> 
            <intent-filter> 
                <action android:name="android.intent.action.MAIN" /> 
                <category android:name="android.intent.category.LAUNCHER" /> 
            </intent-filter> 
        </activity> 
                <activity android:name=".GamePlay" 
                android:screenOrientation="portrait"></activity> 
                <activity android:name=".OptionView" 
                android:screenOrientation="portrait"></activity> 
    </application> 
    <uses-sdk android:minSdkVersion="3" /> 
</manifest>

 

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

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

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

Java代码 复制代码 收藏代码
  1. @Override
  2. public void onConfigurationChanged(Configuration newConfig) {
  3. super.onConfigurationChanged(newConfig);
  4. if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
  5. // land do nothing is ok
  6. } else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
  7. // port do nothing is ok
  8. }
  9. }
分享到:
评论

相关推荐

    Android-今日头条屏幕适配方案终极版一个极低成本的Android屏幕适配方案

    【Android屏幕适配方案终极版】是Android开发者面临的一个重要课题,尤其是在当今各种设备尺寸繁多的情况下。今日头条作为一款广受欢迎的信息聚合应用,其屏幕适配策略无疑具有很高的参考价值。这个低成本的解决方案...

    Android autolayout 屏幕适配

    在Android开发中,屏幕适配是一项重要的任务,尤其是在全球用户使用的设备种类繁多,屏幕尺寸、分辨率各异的情况下。"Android autolayout"是Google推出的一种解决屏幕适配问题的方案,它旨在帮助开发者创建能够自动...

    Android 屏幕适配工具

    "Android屏幕适配"是Android开发中的核心概念,它涉及到尺寸单位、布局权重、资源多版本、比例适配以及使用百分比布局等多种技术。 1. 尺寸单位: - dp (density-independent pixels):与设备像素密度无关的像素...

    Android屏幕适配资源

    本资源包"Android屏幕适配资源"专注于解决这一问题,提供了values资源,能够帮助开发者轻松实现不同屏幕尺寸的适配。接下来,我们将详细讨论Android屏幕适配的核心概念、方法以及如何使用此资源包。 一、屏幕适配的...

    android屏幕适配方案

    以下是一些关键的Android屏幕适配策略和技术: 1. **使用比例和相对布局(Relative Layout)**: - 不直接使用绝对像素值,而是使用比例(dp/dip)来定义控件大小,这样在不同密度的屏幕上会自动调整。 - 相对...

    Android代码-今日头条屏幕适配方案终极版,一个极低成本的 Android 屏幕适配方案

    A low-cost Android screen adaptation solution (今日头条屏幕适配方案终极版,一个极低成本的 Android 屏幕适配方案). Overview Pixel 2 XL | 1440 x 2880 | 560dpi: Pixel XL | 1440 x 2560 | 560dpi: ...

    android屏幕适配方法

    android屏幕适配方法

    Android 智能屏幕适配工具,便捷有效

    "便捷有效"的Android屏幕适配工具有助于自动化这一过程,通常包括以下功能: 1. **多布局支持**:工具可能包含预设的不同布局文件夹(例如layout-sw320dp, layout-sw480dp等),根据设备的屏幕尺寸自动选择合适的...

    android屏幕适配px工具类

    "android屏幕适配px工具类"就是为了解决这一问题而设计的,它可以帮助开发者更方便地处理像素(px)单位转换,确保应用在不同屏幕上的显示效果一致。 在Android系统中,屏幕适配的核心是理解并利用密度独立像素(dp...

    Android屏幕适配生成文件

    Android屏幕适配生成文件

    Android屏幕适配问题

    总的来说,Android屏幕适配涉及以下几个核心点: 1. 使用`&lt;supports-screens&gt;`声明支持不同尺寸和密度。 2. 在正确的资源目录下放置不同密度的图片。 3. 针对不同屏幕方向提供特定的资源。 4. 利用`DisplayMetrics`...

    Android多屏幕适配及样式-设计开发指导书

    ### Android多屏幕适配及样式设计开发指导书 #### 一、引言 随着移动互联网技术的发展,Android设备种类繁多,不同的品牌、型号、屏幕尺寸以及分辨率等特性导致了多屏幕适配成为Android开发中的一项重要挑战。本文...

    Android-androidUI适配屏幕适配

    在Android应用开发中,屏幕适配是一个至关重要的环节,因为Android设备有着丰富的屏幕尺寸和分辨率。本篇文章将深入探讨如何进行Android UI的适配工作,确保应用在不同设备上都能呈现出良好的视觉效果和用户体验。 ...

    Android屏幕字体适配源码

    在Android开发中,屏幕适配和字体适配是至关重要的环节,尤其是在面对各种不同尺寸、分辨率的设备时。本文将详细解析"Android屏幕字体适配源码",旨在帮助初学者理解和掌握这一关键技术。 首先,Android系统允许...

    Android大屏幕适配demo

    Android大屏幕适配demo,这个是仿照郭林文章中的例子,他的例子是用eclipse写的,直接运行会不兼容最新的sdk,我改成了AndroidStudio可以直接运行的demo.郭林此代码文章的连接 ...

    Android屏幕适配smallestWidth适配尺寸文件

    本篇文章将深入探讨Android屏幕适配中的smallestWidth维度,以及如何使用对应的尺寸文件来优化应用界面。 首先,了解"smallestWidth"的概念。smallestWidth是指设备屏幕在横屏或竖屏状态下可用来显示内容的最小宽度...

    Android-针对Android屏幕适配所整合的几种常用方案

    本篇文章将详细探讨几种常见的Android屏幕适配方案,帮助开发者解决不同设备间界面显示不一致的问题。 1. **使用比例单位(dp、sp)** Android提供了密度无关像素(dp)和可缩放像素(sp)作为尺寸单位。dp用于长度和...

    Android多屏幕适配

    研究了以前同事留下的适配方案和网神hongyang大牛提供的方案,特整理了两套完美的android屏幕适配工具类,和详细的使用demo,可以根据px适配,也可以根据dp适配。适配原理可参考hongyang的博客,若还不会或者不会用...

    Android屏幕适配主流方案的对比和集成

    本文将详述几种主流的Android屏幕适配方案,并进行对比分析,帮助开发者选择最适合项目需求的方法。 一、密度无关像素(DP/SP) Android系统采用密度无关像素(DP)作为单位来设计界面,以确保在不同密度的屏幕上...

    Android屏幕适配:dimens自动生成工具以及使用方法,亲测好用

    现在,针对"Android屏幕适配:dimens自动生成工具",这个工具的主要功能是自动化生成多个`dimens.xml`文件,减少手动创建和维护的工作量。使用该工具,开发者只需输入基本的尺寸数据,工具会根据预设的屏幕密度配置...

Global site tag (gtag.js) - Google Analytics