一:不同的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里面配置一下就可以了。加入这一行android:screenOrientation="landscape"。
例如(landscape是横向,portrait是纵向):
Java代码:
<?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方法。实现方式如下,不需要做太多的内容:
@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
}
}
写一个支持多分辨的程序,基于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的多分辨支持的文件夹
转自:http://www.cnblogs.com/leon19870907/archive/2012/02/01/2335143.html
分享到:
相关推荐
### Android自适应屏幕大小与Layout布局详解 #### 一、不同屏幕尺寸的适应性设计 在Android应用开发中,为了确保应用能够在各种不同尺寸的屏幕上正常显示,开发者需要考虑多种屏幕分辨率的情况。例如,常见的屏幕...
Android 自适应屏幕大小和 Layout 布局(横屏竖屏) Android 手机屏幕大小各不相同,例如 480x320、640x360、800x480 等。为了让 App 自动适应不同的屏幕大小,可以在 res 目录下创建不同的 layout 文件夹,例如 ...
Android自适应屏幕布局是指在Android系统中实现屏幕自适应的布局方式,通过使用不同的布局文件和样式可以使屏幕布局适应不同的屏幕尺寸和方向。下面是关于Android自适应屏幕布局的详细知识点: 一、布局文件 在...
6. **适配屏幕方向**:应用应支持横屏和竖屏模式,并确保在两种模式下布局都能正确显示。在布局文件中,可以使用`screenOrientation`属性来指定特定布局的方向。 7. **使用比例和百分比布局**:Android提供了...
本示例着重讲解如何实现"android屏幕自适应",确保应用在不同分辨率如360x480, 480x800, 480x854以及640x360等设备上都能正常显示,避免因屏幕尺寸差异导致的显示问题。 1. **理解Android屏幕尺寸和密度** Android...
分别为横屏(landscap)和竖屏(portrait)提供不同的布局文件,以优化不同方向下的用户体验。 11. **自适应国际化语言(22.1_android 自适应国际化语言)**: 使用`res/values/strings.xml`等不同语言的资源...
2. **布局资源**:Android提供了不同的布局资源文件夹(如`layout-land`用于横屏,`layout-port`用于竖屏),开发者可以在这两个文件夹下创建对应方向的布局文件。 3. **配置变更**:当设备旋转时,系统会触发配置...
在Android开发中,屏幕自适应是一项至关重要的技术,它确保应用程序在不同尺寸和分辨率的设备上都能呈现良好的用户体验。本文将深入探讨Android屏幕自适应的原理、方法和案例,帮助开发者掌握这一关键技能。 首先,...
8. **适配横竖屏**:通过在AndroidManifest.xml中设置`android:configChanges="orientation|screenSize"`,可以手动处理横竖屏切换时的布局变化。 至于`SurfaceView_Test.rar`和`Layout_Test.rar`这两个压缩包,...
本篇文章将详细介绍如何处理Android应用的屏幕自适应问题,包括横屏和竖屏的切换以及不同分辨率的适配。 首先,遇到的第一个问题是横屏和竖屏的切换。Android系统提供了一种灵活的方式来处理这个问题。开发者可以在...
在安卓应用开发中,自适应屏幕方向和大小是至关重要的,因为不同的设备有着各种各样的屏幕尺寸和方向,包括手机、平板以及横屏、竖屏的切换。本项目旨在分享在进行安卓APP开发时,如何有效地实现界面的自适应,确保...
当设备从竖屏切换到横屏时,开发者可以通过在`res`目录下创建`layout-port`(竖屏)和`layout-land`(横屏)文件夹,分别放入对应方向的布局文件。系统会自动根据设备的方向选择正确的布局。 4. **禁止屏幕方向...
### Android如何自适应多种屏幕手机 #### 一、概述 Android平台因其开放性和广泛的设备支持而受到欢迎,但这也带来了多样化的屏幕尺寸和分辨率问题。为了确保应用能够在各种不同的设备上良好运行,开发者需要采取...
总结来说,Android编程实现屏幕自适应主要通过创建多尺寸布局文件、提供不同分辨率的资源、获取屏幕尺寸信息以及处理屏幕方向变化来实现。合理运用这些方法,可以让应用程序在各种尺寸和分辨率的Android设备上表现出...
默认情况下,Android应用可以自动旋转以适应横屏或竖屏。但有时我们可能需要限制应用只在特定方向运行。这可以通过在`AndroidManifest.xml`中对 `<activity>` 标签添加 `android:screenOrientation` 属性来实现,如...
3. **处理不同屏幕方向**:屏幕可能处于横屏或竖屏模式,可以通过`Display`对象的`getRotation()`方法获取当前的旋转角度。根据旋转角度调整分辨率的读取方式,以确保得到的是实际的宽度和高度。 ```java Display ...
默认情况下,Android应用会根据设备当前的方向(横屏或竖屏)来显示布局。通过在res/layout-v portrait和res/layout-land目录下分别创建竖屏和横屏的布局文件,可以实现特定方向的定制。同时,可以在...
在AndroidManifest.xml文件中,可以通过设置标签的android:screenOrientation属性来指定屏幕方向,如"portrait"(竖屏)、"landscape"(横屏)或"sensor"(根据设备传感器自动旋转)。 接下来,文档可能会讨论到...