`
ictch
  • 浏览: 135461 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

让你的游戏自适应屏幕吧

阅读更多

        我感觉,做手机的屏幕自适应比做web的浏览器兼容更麻烦..以下是搜到的资料,原来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是纵向):

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

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

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


分享到:
评论

相关推荐

    使vb窗体可以自适应屏幕分辨率的大小

    VB 窗体自适应屏幕分辨率大小可以应用于各种 VB 应用程序中,如游戏、多媒体应用程序、办公软件等。特别是在需要在不同屏幕分辨率下的窗体显示时,VB 窗体自适应屏幕分辨率大小可以发挥重要作用。 五、结论 VB ...

    U3D 自适应屏幕

    在创建跨平台的交互式体验时,自适应屏幕技术是至关重要的,它确保了内容能在不同尺寸和比例的设备上正确显示。本文将深入探讨U3D中的自适应屏幕策略和实现方法。 一、屏幕尺寸与分辨率 在Unity3D中,屏幕尺寸指的...

    Unity3D GUI自适应屏幕

    在"Unity3D学习笔记01:GUI自适应屏幕分辨率的项目源码"中,你可能会看到以下关键概念和代码: 1. CanvasScaler组件的配置:根据Scale With Screen Size和Reference Resolution设置,Canvas Scaler能够动态调整UI...

    unity游戏分辨率屏幕自适应插件.zip

    在开发游戏时,考虑到不同设备的屏幕尺寸和分辨率,实现游戏的屏幕自适应至关重要,这能确保游戏在各种设备上都能呈现出良好的视觉效果。"Unity游戏分辨率屏幕自适应插件"就是为了解决这个问题而设计的。 该插件名...

    cocos2d-x自适应屏幕分辨率 源码

    cocos2d-x提供了自适应屏幕分辨率的功能,帮助开发者解决这一问题。本篇文章将深入探讨cocos2d-x如何实现自适应屏幕分辨率,并基于提供的源码进行分析。 首先,我们来理解cocos2d-x中的几个关键概念: 1. **设计...

    网页小游戏自适应

    网页小游戏自适应是一种重要的开发技术,它使得游戏能够在不同设备和屏幕尺寸上提供良好的用户体验。在当前移动设备多样化和浏览器兼容性需求日益增强的背景下,网页小游戏的自适应设计至关重要。下面将详细介绍这一...

    使用HTML响应式+css+动画设计静态游戏首页,自适应屏幕尺寸

    在描述中提到,首页需要根据用户尺寸的变换自适应屏幕大小。这可以通过设置容器的宽度为百分比,而非固定像素,来实现内容的自适应流动。同时,利用视口相关单位如vw(视口宽度的百分比)和vh(视口高度的百分比)...

    Unity打包Webgl端进行 全屏幕自适应

    在Unity中将项目打包成WebGL格式,是为了让游戏或应用程序能在网页上运行,而全屏自适应则是提升用户体验的关键因素。本篇文章将详细介绍如何在Unity中实现WebGL端的全屏幕自适应,并关注`index.html`和`style.css`...

    js实现的2048,手机屏幕自适应

    为了让2048游戏在不同尺寸的手机屏幕上都能良好运行,我们需要考虑以下几点: 1. **响应式设计**:使用媒体查询(media queries)来调整棋盘的大小和布局,使其在小屏幕设备上也能清晰展示。 2. **触摸优化**:确保...

    Unity道具tips自适应屏幕边界项目源码

    Unity道具tips自适应屏幕边界项目源码是一种在游戏开发中常见的需求,特别是在使用Unity引擎的UGUI系统时。UGUI(Unity Graphic User Interface)是Unity提供的一个强大的2D图形用户界面系统,它允许开发者创建丰富...

    NGUI屏幕自适应

    在创建跨平台的游戏时,屏幕自适应是一个关键问题,因为不同的设备可能具有不同的屏幕尺寸和分辨率。NGUI 2.6.3提供了屏幕自适应功能,使得UI能在不同设备上正确显示。 1. **创建项目和场景**:首先,你需要在Unity...

    贪吃蛇游戏-休闲游戏+屏幕自适应+操作流程+Java开发

    游戏具有屏幕自适应功能,无论手机或PDA的屏幕大小如何,游戏始终能提供最佳的显示效果。 适用人群:适合所有喜欢休闲游戏、怀旧游戏或对贪吃蛇游戏感兴趣的人群。无论是年轻人还是年长者,都可以通过这款游戏享受...

    免费手机小游戏触屏版自适应html5手机游戏网站模板.zip

    在这个手机游戏网站模板中,设计师利用CSS3媒体查询等技术,确保页面元素在不同分辨率的设备上都能合理排列,如游戏分类、游戏列表、导航菜单等都能在小屏幕设备上流畅显示。 模板中可能包含以下关键组件: 1. 主页...

    cocos2d-x 2.0版本 自适应屏幕分辨率

    《cocos2d-x 2.0版本:自适应屏幕分辨率的深度解析》 在移动游戏开发领域,cocos2d-x是一个广受欢迎的开源2D游戏引擎,它以其高效性能和跨平台特性赢得了开发者们的青睐。在cocos2d-x 2.0版本中,对屏幕适配进行了...

    H5神庙逃亡自适应手机游戏

    【H5神庙逃亡自适应手机游戏】是一款基于HTML5技术开发的移动平台游戏,其特点是能够自动适应不同尺寸的手机屏幕,提供流畅的游戏体验。这款游戏采用了WebGL或者Canvas等技术来绘制游戏场景,使得游戏可以在浏览器...

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

    在移动设备和网页设计中,自适应屏幕方向和大小是一个至关重要的概念,它涉及到用户体验、界面设计和响应式布局等多个方面。自适应设计允许应用程序或网站根据用户设备的屏幕尺寸和方向自动调整其布局和内容展示,...

    unity3d NGUI自适应屏幕.pdf

    本文将介绍一种适用于任何分辨率的NGUI自适应屏幕的方法,该方法简单易用,支持横屏和竖屏,并且能确保UI元素不被拉伸。这个方法主要依赖于两个关键脚本:`MyAnchorCamera`和`MyUIAnchor`。 1. **MyAnchorCamera** ...

    Unity打包WebGL平台,能够实现自适应的Template

    自适应模板的目的是让游戏在不同的屏幕尺寸和设备上都能正常工作。Unity提供了一些内置的模板,但你也可以根据需求创建自己的模板。一个自适应的模板通常包括以下要素: 1. **响应式设计**:确保HTML容器可以适应...

    android手游屏幕自适应开发思路

    ### Android手游屏幕自适应开发思路详解 #### 一、引言 随着移动互联网的发展,Android平台因其开放性和多样性成为智能手机操作系统的重要组成部分。然而,这也带来了挑战:如何让一款手游能够完美适配各种不同尺寸...

    HTML5canvas自适应手机屏幕大小的一种解决方案.docx

    本文将详细介绍一种实现Canvas自适应手机屏幕大小的技术方案。 #### 二、需求分析 本方案主要满足以下需求: 1. **内容完整性**:Canvas的内容需完整地展示在屏幕上,无论是图形还是文字。 2. **图像不变形**:尽...

Global site tag (gtag.js) - Google Analytics