`

Android开发之屏幕大小自适应

 
阅读更多
屏幕大小:
一:不同的layout
Android手机屏幕大小不一,有480x320, 640x360, 800x480.怎样才能让App自动适应不同的屏幕呢?
   其实很简单,只需要在res目录下创建不同的layout文件夹,比如layout-640x360,layout-800x480,所有的layout文件在编译之后都会写入R.java里,而系统会根据屏幕的大小自己选择合适的layout进行使用。
注意:800x480中的x是英文字母x,而且大的数字在前(比如800在前,480在后)。
二: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代码:

<?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
                }
        }
分享到:
评论

相关推荐

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

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

    android 自适应屏幕大小

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

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

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

    android自适应屏幕布局

    Android自适应屏幕布局 Android自适应屏幕布局是指在Android系统中实现屏幕自适应的布局方式,通过使用不同的布局...屏幕自适应是Android开发中的一项重要技术,可以使应用程序在不同的屏幕尺寸和方向下都能正常运行。

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

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

    Android软件自适应屏幕技巧

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

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

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

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

    在Android应用开发中,确保应用程序能够自适应各种手机屏幕大小和分辨率是至关重要的。这不仅可以提供优秀的用户体验,也是Google Play商店对应用...同时,持续关注Android开发的最佳实践和新功能,以优化自适应策略。

    android屏幕自适应

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

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

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

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

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

    仿真培训系统在Android设备上屏幕自适应研究.pdf

    【屏幕自适应】在Android开发中,屏幕自适应是指让应用的界面能够根据不同的屏幕尺寸和分辨率自动调整布局,以保持良好的用户体验。通常,这涉及到使用相对布局(RelativeLayout)或约束布局(ConstraintLayout),...

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

    为了实现界面在不同设备上自适应显示,设计师通常会在设计工具如Adobe Photoshop(PS)中完成初步的UI设计,然后将设计图中的尺寸转换为Android开发所需的像素(px)和密度无关像素(dp)单位。本文将详细探讨...

    Android屏幕自适应Demo

    在Android应用开发中,屏幕适配是一个至关重要的环节,尤其对于多设备、多分辨率的环境。本文将基于“Android屏幕自适应Demo”这一主题,详细阐述如何实现Android应用在不同屏幕尺寸和分辨率上的良好表现。 首先,...

    Android自适应屏幕分辨率

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

    安卓app开发项目-关于自适应屏幕方向和大小的一些经验(源码).zip

    在不同尺寸的资源文件夹下创建相应的dimens.xml,可以轻松地调整这些值以适应不同屏幕大小。 在实际开发中,进行真机或模拟器测试是必不可少的步骤,以确保应用在各种设备上都能正常运行。同时,持续关注Android...

    android屏幕像素自适应问题

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

    再封装JCVideoPlaye根据屏幕自适应视频大小不拉伸,以及长视频播放

    1. **自适应屏幕大小** - 屏幕适配技术是移动开发中的核心问题,尤其是考虑到设备种类繁多,屏幕尺寸和分辨率各不相同。项目通过重新封装JCVideoPlayer,使其能够动态调整视频播放窗口的大小,以适应屏幕的宽度和...

    Android屏幕自适应

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

Global site tag (gtag.js) - Google Analytics