`
happy90
  • 浏览: 62184 次
  • 性别: 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)
  系统会根据机器的分辨率来分别到这几个文件夹里面去找对应的图片。
  在开发程序时为了兼容不同平台不同屏幕,建议各自文件夹根据需求均存放不同版本图片。
屏幕方向:
横屏竖屏自动切换:
     可以在res目录下建立layout-port和layout-land两个目录,里面分别放置竖屏和横屏两种布局文件,这样在手机屏幕方向变化的时候系统会自动调用相应的布局文件,避免一种布局文件无法满足两种屏幕显示的问题。
不切换:

以下步骤是网上流传的,不过我自己之前是通过图形化界面实现这个配置,算是殊途同归,有空我会把图片贴上来。
还要说明一点:每个activity都有这个属性screenOrientation,每个activity都需要设置,可以设置为竖屏(portrait),也可以设置为无重力感应(nosensor)。
要让程序界面保持一个方向,不随手机方向转动而变化的处理办法: 
  
在AndroidManifest.xml里面配置一下就可以了。加入这一行android:screenOrientation="landscape"。
例如(landscape是横向,portrait是纵向):

Java代码:
      package="com.ray.linkit" 
      android:versionCode="1" 
      android:versionName="1.0"> 
     
                  android:label="@string/app_name" 
                  android:screenOrientation="portrait"> 

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

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

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

@Override
        public void onConfigurationChanged(Configuration newConfig) {
                super.onConfigurationChanged(newConfig);
                if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
                        // land do nothing is ok
                } else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
                        // port do nothing is ok
                }
        }

 

 

手机屏幕分类和像素密度的对应关系如下表所示:

 

 
Low density (120), ldpi
Medium density (160), mdpi
High density (240), hdpi
Small screen
QVGA (240x320)
 
 
Normal screen
WQVGA400 (240x400)WQVGA432 (240x432)
HVGA (320x480)
WVGA800 (480x800)WVGA854 (480x854)
Large screen
 
WVGA800* (480x800)WVGA854* (480x854)
 

 

单位:像素 
WVGA854: 854*480
WVGA800: 800*480

HVGA: 640*480 
QVGA: 320*240

WQVGA432:432*240 
WQVGA400:400*240 

Android3.0 WXGA:800*1280

 

转自:http://home.cnblogs.com/group/topic/53747.html

分享到:
评论
1 楼 yanjunhui2011 2012-07-24  
http://download.csdn.net/detail/yanjunhui2011/4444300
这里是DEMO下载地址。

相关推荐

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

    本文就介绍了4中Android屏幕自适应解决方案。 一、细说layout_weight 目前最为推荐的Android多屏幕自适应解决方案。 该属性的作用是决定控件在其父布局中的显示权重,一般用于线性布局中。其值越小,则对应的...

    android 自适应屏幕大小

    在Android开发中,面对各种不同尺寸和分辨率的设备,如何实现屏幕自适应是一个重要的课题。本文将详细解析Android系统如何处理屏幕自适应问题,并提供相应的解决策略。 首先,Android界面开发推荐使用“density-...

    android屏幕自适应

    这些布局组件提供了一种自适应的方式来处理下拉刷新和滚动行为,它们能够根据屏幕大小自动调整。 11. **适配横屏和竖屏** 为横屏和竖屏分别创建layout-land和layout-port目录,放置相应的布局文件,确保两种模式...

    android屏幕像素自适应问题

    在运行时,系统会根据设备的屏幕大小自动选择最适合的布局。 2. **密度独立像素(dp)和资源文件夹**: 除了尺寸,Android还需要处理不同屏幕的像素密度。Android提供了`drawable-hdpi`, `drawable-mdpi`, `...

    Android字体大小自适应不同分辨率的解决办法

    Android字体大小自适应不同分辨率的解决办法是指在不同的Android设备上,根据屏幕分辨率和尺寸变化,自动调整字体大小的技术。这个解决办法是通过使用Android的资源文件夹机制和dimens.xml文件来实现的。 在 ...

    android多分辨率屏幕自适应解决方案

    在Android开发中,屏幕自适应设计是一个重要的技术点,它涉及到不同分辨率和尺寸的屏幕显示效果。为了实现应用界面在各种设备上的良好表现,开发者需要处理好屏幕分辨率的适配问题。多分辨率屏幕自适应解决方案是指...

    android自适应屏幕布局

    Android自适应屏幕布局 Android自适应屏幕布局是指在Android系统中实现屏幕自适应的布局方式,通过使用不同的布局文件和样式可以使屏幕布局适应不同的屏幕尺寸和方向。下面是关于Android自适应屏幕布局的详细知识点...

    Android屏幕自适应Demo

    本文将基于“Android屏幕自适应Demo”这一主题,详细阐述如何实现Android应用在不同屏幕尺寸和分辨率上的良好表现。 首先,理解Android屏幕的基本概念是关键。Android屏幕主要由以下几个属性定义: 1. **分辨率**...

    Android自适应屏幕大小和layout布局(横屏竖屏)

    ### Android自适应屏幕大小与Layout布局详解 #### 一、不同屏幕尺寸的适应性设计 在Android应用开发中,为了确保应用能够在各种不同尺寸的屏幕上正常显示,开发者需要考虑多种屏幕分辨率的情况。例如,常见的屏幕...

    Android软件自适应屏幕技巧

    屏幕大小 为了实现屏幕自适应,可以采用以下几种方法: - **不同的Layout文件**:在`res/layout`目录下创建多个布局文件夹,例如`layout-640x360`、`layout-800x480`等。这样可以在不同屏幕尺寸下使用不同的布局...

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

    本文将详细探讨Android屏幕自适应计算工具及其在UI设计尺寸换算中的应用。 首先,了解Android屏幕的基本概念。Android设备具有多种屏幕尺寸和分辨率,为了确保应用在各种设备上表现一致,Android引入了dp(density-...

    android安卓制作自适应各种手机屏幕大小的app_极品.zip

    android安卓制作自适应各种手机屏幕大小的app_极品.zip

    安卓自定义控件相关-Android屏幕自适应Demo.rar

    "安卓自定义控件相关-Android屏幕自适应Demo"这个压缩包文件提供了关于如何在Android平台上创建自定义控件以及实现屏幕自适应的示例。下面将详细讲解这两个关键知识点。 一、自定义控件 1. **基础概念**:自定义...

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

    为了更好地理解屏幕自适应的需求,首先我们需要了解常见的Android屏幕尺寸及其比例。尽管题目中提到的信息没有包含所有尺寸,但我们可以基于提供的信息进行拓展分析: - **低密度 (120dpi)**:ldpi,适用于较小的...

    android系统如何自适应屏幕大小

    android将屏幕大小分为四个级别(small,normal,large,and extra large)。 1.3屏幕密度 每英寸像素数 手机可以有相同的分辨率,但屏幕尺寸可以不相同, Diagonal pixel表示对角线的像素值(=),DPI=933/3.7=...

    android自定义dialog嵌套listview自适应屏幕

    在Android开发中,自定义Dialog并使其嵌套ListView以实现屏幕自适应是一项常见的需求。这涉及到Android UI设计、自定义视图以及ListView的适配器机制。以下将详细阐述这个主题的相关知识点。 首先,让我们理解...

    Android自适应屏幕分辨率

    Android 操作系统中,屏幕分辨率的差异非常大,需要程序自动适应屏幕大小。正确的做法是使用 weight 属性,设置控件的 layout 中的 width、height 为 fill-parent,而不是 wrap-content。这样可以利用 weight 的...

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

    2. **维度资源**:使用`values-swXXdp`或`values-wXXdp`目录可以为不同屏幕大小的设备提供特定的尺寸值,例如`dimens.xml`文件。XX表示 dp 值,可以根据设备的屏幕宽度来选择合适的资源。 3. **相对布局...

Global site tag (gtag.js) - Google Analytics