`
zkl_1987
  • 浏览: 245754 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

android 笔记 --- 适配不同分辨率的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 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     
                 }     
         } 
l
分享到:
评论

相关推荐

    新版Android开发教程+笔记--基础UI编程

    最后,适配不同屏幕尺寸和分辨率是Android UI开发中的一大挑战。使用相对布局、权重(weight)分配、可变大小的图片资源(例如,dp单位而非px)以及可扩展的布局可以帮助创建适应各种设备的界面。 总结,本教程涵盖...

    新版Android开发教程 笔记11--可视化UI设计DroidDraw

    Android设备的屏幕尺寸和分辨率差异较大,因此,一个好的UI设计需要考虑到不同设备的兼容性。在DroidDraw中,你可以预览设计在不同屏幕密度和尺寸下的效果,以确保应用在各种设备上都能良好显示。 此外,DroidDraw...

    android 开发笔记3

    - 屏幕适配:掌握如何设计适应不同屏幕尺寸和分辨率的UI。 通过这份笔记,开发者可以系统地学习Android开发,并结合real6410开发板的特性,实践从应用设计到调试的全过程,从而提升在特定硬件上的开发效率和应用...

    Android学霸学习笔记

    - 兼容不同的设备:阐述如何适配不同屏幕尺寸和分辨率的设备。 - 适配不同的语言:介绍如何实现应用的国际化。 - 适配不同的屏幕:讲解如何适配不同屏幕密度的设备。 - 适配不同的系统版本:讨论如何让App兼容...

    Android-LearningNotes.zip

    Android提供了多种布局和资源的适配策略,如使用dimens.xml文件定义不同尺寸的资源,以及使用support library和AndroidX库来兼容旧版系统。 Android的调试工具也很强大,如Logcat用于查看应用日志,Hierarchy ...

    android各版本分辨率适配(项目亲测).zip

    为了满足广大Android开发爱好者与从业者的学习需求,我们精心整理并上传了一份全面而实用的Android项目资源包。这份资源包内容丰富,涵盖了从基础知识到实战应用的全方位内容,旨在为开发者们提供一个便捷、高效的...

    android笔记4

    7. **设备适配**:由于Real6410与其他Android设备硬件配置不同,开发者需要关注屏幕尺寸适配、分辨率调整、硬件加速等功能,确保应用在不同设备上的表现一致。 8. **调试与性能优化**:在Real6410上,开发者需要...

    Android+学习笔记

    Android应用的资源存储在res目录下,包括图片、字符串、样式等,便于国际化和多分辨率适配。 7. **生命周期** Activity和Service都有各自的生命周期,开发者需要理解并正确处理生命周期回调,确保应用性能和稳定...

    Android笔记之 图片自由裁剪 DEMO

    本篇将详细探讨如何实现“Android笔记之图片自由裁剪DEMO”,并结合提供的`ImageCutDemo`来深入理解相关知识点。 1. **Intent选择图片** Android系统提供了Intent机制,用于启动系统服务或与其他应用程序进行交互...

    黎活明Android学习笔记

    根据给定的信息,“黎活明Android学习笔记”主要记录了Android开发的基础步骤和技术要点,包括安装Android开发环境、创建虚拟设备、构建简单的Android应用程序以及理解应用程序的目录结构等内容。接下来,我们将对...

    android开发教程笔记

    最后,Android开发还包括对各种设备特性的适配,如屏幕尺寸、分辨率、硬件特性等,以及版本兼容性问题,因为Android生态系统有众多不同版本共存。 在学习这些基础知识后,开发者可以进一步探索高级主题,如Android...

    Android 学习实例备份,添加收集的文档和笔记.

    - 文件名“Mobile”可能指向的是移动设备相关的开发知识,如适配不同分辨率屏幕、优化电池续航、利用传感器进行移动应用开发等。 - 还可能包括跨平台开发技术,如React Native或Flutter,以及如何实现多语言支持和...

    cocos2d-x学习笔记

    `setContentScaleFactor` 设置内容缩放因子,确保内容在不同分辨率下正确显示。 3. 应用程序生命周期管理: 在iOS和Android等平台上,`applicationDidEnterBackground` 和 `applicationWillEnterForeground` 分别...

    android中文书籍

    12. **版本适配**:Android系统版本众多,适配不同设备是开发者需要面对的挑战。书籍会讲解如何处理屏幕尺寸、分辨率差异以及API级别的兼容问题。 通过阅读《新版Android开发教程&笔记1--基础入门一》,读者可以...

    基于Android平台的 酷相机

    Android的布局管理器如LinearLayout、RelativeLayout、ConstraintLayout等可以用来构建UI,同时需考虑不同屏幕尺寸和方向的适配。 九、拍照模式与功能扩展 除了基本的拍照功能,酷相机可能还包括连拍、延时摄影、...

    Android学习笔记(三九):资源resource(下).doc

    本篇笔记将深入探讨Android资源的使用,包括尺寸(Dimension)、颜色(Color)、数组(Array)以及针对不同情况的资源适配。 首先,我们来看尺寸资源(Dimension)。尺寸资源用于定义字体大小、间距、padding等。在...

Global site tag (gtag.js) - Google Analytics