`
44289533
  • 浏览: 68372 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

android应用程序适配在不同的手机上

阅读更多
如何将一个应用程序适配在不同的手机上,虽然这不算是一个技术问题,但是对于刚刚做屏幕的开发人员来说,还真不是一件多么简单的事情。


首先:你需要在AndroidManifest.xml文件的<manifest>元素如下添加子元素

<supports-screens android:largeScreens=“true”

       android:normalScreens=“true” android:anyDensity=“true”

       android:smallScreens=“true”></supports-screens>


    名如其意,以上是为我们的屏幕设置多分辨率支持(更准确的说是适配大、中、小三种密度)。android:anyDensity=“true” ,这一句对整个的屏幕都起着十分重要的作用,值为true,我们的应用程序当安装在不同密度的手机上时,程序会分别加载hdpi,mdpi,ldpi文件夹中的资源。

相反,如果值设置为false,即使我们在hdpi,mdpi,ldpi文件夹下拥有同一种资源,那么应用也不会自动地去相应文件夹下寻找资源,这种情况都是出现在高密度,以及低密度的手机上,比如说一部240×320像素的手机,如果设置android:anyDensity=“false”,Android系统会将240 x 320(低密度)转换为 320×480(中密度),这样的话,应用就会在小密度手机上加载mdpi文件中的资源。


2.细心的人会发现自android2.0开始之后drawable文件被三个文件夹drawable-hdpi,drawable-mdpi,drawable-ldpi三个文件夹所取代,有些编程人员为了让应用程序默认地加载某些图片,他们会特意地去在android2.0之后的应用程序中重新创建drawable文件夹,其实这样做完全没有必要,通过第一段的分析我们得知,android:anyDensity=“false”,则应用会将大小密度转变成中密度,从而去加载mdpi中的资源。这里同样,当android:anyDensity=“false”,则应用会去加载mdpi中的资源。

总结一下:

第一:android:anyDensity=“true”,系统会依据屏幕密度,自动去找对应的文件夹

第二:android:anyDensity=“false”,

(1)              如果drawable-hdpi,drawable-mdpi,drawable-ldpi三个文件夹中有同一张图片资源的不同密度表示,那么系统会去加载drawable_mdpi文件夹中的资源

(2)              如果drawable-hpdi中有高密度图片,其它两个文件夹中没有对应图片资源,那么系统会去加载drawable-hdpi中的资源。

(3)              如果drawable-hdpi,drawable-mdpi中有图片资源,drawable-ldpi中没有对应的图片资源,那么系统会加载drawable-mdpi文件夹中的资源


3. 注意上图各种文件夹的不同表示。

drawable-hdpi 该图片即适用于横屏,也适用于竖屏

drawable-land-hdpi,当屏幕为横屏,且为高密度时,加载此文件夹中的资源

drawable-port-hdpi,当屏幕为竖屏,且为高密度时,加载此文件夹中的资源


3. 有时候会根据需要在代码中动态地设置某个值,比如地图,地图的pin和地图的地址提示框的相对偏移量在不同密度的手机上是不同的。这时候可以通过以下方法求出屏幕密度:


DisplayMetrics metric = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metric);

int densityDpi = metric.densityDpi;  // 屏幕密度DPI(120 / 160 / 240)


然后可以在代码中为这几种密度分别设置便宜量


但是这种方法最好不要使用,最好的方式是在xml文件中不同密度的手机进行分别设置。

这里地图的偏移量可以在values-hpdi,values-mdpi,values-ldpi三种文件夹中的dimens.xml文件进行设置

值得一提的是:

    <dimen name=“bitmap_common_topoffset”>40dp</dimen>

    <dimen name=“bitmap_common_bottomoffset”>-14dp</dimen>

这里的负数是完全起作用的,系统会认为它是一个负值



4. 各大手机厂商对于Android操作系统都有或多或少的改动,当然这些改动会对我们应用程序产生某些影响

比如:

  (1)系统源代码中连接music服务的aidl文件所在包名:com.android.music

  (2)LG则可能将该aidl文件修改所在的包(例如修改为 com.android.music.player),并且修改其中的文件内容(增加一个方法,或者减少几个方法,或者修改方法名称)那么我们的应用要想在LG的手机上发布,那么我们就必须改变所要连接的aidl文件,必须跟LG厂商修改的完全一致。

分享到:
评论

相关推荐

    基于IOS、Android手机设备应用程序交互适配设计研究报告.docx

    综上所述,本研究报告通过对iOS和Android手机设备应用程序交互适配设计的研究,提出了适应移动设备特性的设计原则,旨在帮助开发人员创建更加友好且高效的用户界面,提升用户体验。这些原则不仅适用于当前的技术环境...

    Android应用程序概述

    Android应用程序概述 Android操作系统是目前全球最流行的移动设备操作系统之一,尤其在智能手机和平板电脑市场占据了主导地位。Android系统以其开放源代码、丰富的定制性和强大的开发者社区为特点,吸引了无数用户...

    Android手机程序设计入门应用到精通源代码

    【Android手机程序设计入门应用到精通源代码】是一本针对初学者至中级开发者设计的教程,旨在帮助读者从基础到高级全面掌握Android应用程序开发。该书由孙宏明撰写,他在Android开发领域有着丰富的经验和深入的理解...

    15枚精美的 Android 应用程序图标PNG格式素材

    2. **Android应用程序图标设计**:在Android平台,应用图标不仅要在主屏幕上显示,还可能出现在通知栏、设置菜单等多个地方。因此,图标设计需要考虑不同尺寸的需求,包括launcher图标(启动器图标)、小图标(例如...

    Dimens文件生成工具/Android平板屏幕适配开发必备

    在Android应用开发中,适配不同的设备屏幕是至关重要的任务,尤其对于平板设备而言,由于其屏幕尺寸的多样性,适配工作更为复杂。`Dimens`文件是Android开发者用来管理不同屏幕尺寸下UI元素大小的关键工具,它可以...

    android屏幕适配方案

    一个良好的屏幕适配方案能够确保应用程序在不同设备上显示一致且用户体验良好。以下是一些关键的Android屏幕适配策略和技术: 1. **使用比例和相对布局(Relative Layout)**: - 不直接使用绝对像素值,而是使用...

    android手机程序设计

    在Android手机程序设计领域,开发者可以创建出丰富的应用程序,这些应用可以运行在全球数十亿设备上。Android系统基于Linux内核,提供了一个开放源代码的平台,使得开发者有极高的自由度来实现自己的创新想法。 ...

    android屏幕适配demo.zip

    在Android开发中,屏幕适配是一项至关重要的任务,因为Android设备拥有各种各样的屏幕尺寸和分辨率,从小型手机到大型...在实际开发中,结合使用这些方法,可以确保应用程序在各种Android设备上都有良好的用户体验。

    《Android应用程序设计教程》PDF

    《Android应用程序设计教程》PDF是针对想要学习和深入理解Android应用程序开发的专业人士或爱好者的一份重要资源。这份教程详尽地介绍了如何利用Android SDK和相关工具来构建功能丰富的移动应用。在阅读这份教程的...

    Android-快速和简单的规划扑克Android应用程序

    2. 多设备兼容性:不仅能在Android手机上运行,还能适应平板电脑的大屏幕,甚至可以在Android Wear设备上进行轻量级操作,满足不同场景的需求。 3. 敏捷估算工具:内置多种估算牌面(如斐波那契数列、T-Shirt尺码等...

    Android手机管家源码

    此外,开发过程中可能还需要考虑到性能优化、UI设计、异常处理、多线程以及适配不同Android版本等问题。整体来看,这个项目不仅锻炼了开发者的技术能力,也提高了他们解决实际问题的能力,是Android开发者的宝贵参考...

    第一个Android应用程序#102

    这个名为“第一个Android应用程序#102”的教程可能是系列教程中的一个章节,重点在于引导开发者完成Android应用的基础搭建。下面,我们将深入探讨Android应用开发的基本流程和关键知识点。 1. **Android Studio**:...

    Android校验手机制式适配的代码例子

    在Android开发中,确保应用程序能够正确地识别和适配不同手机的网络制式是非常关键的。这涉及到如何获取设备的网络运营商信息、网络类型(2G、3G、4G等)以及双卡支持情况。下面我们将深入探讨这些知识点。 首先,...

    Android各个主要手机机型跳转权限设置界面代码

    随着用户隐私意识的提高,各大手机厂商在系统层面都提供了丰富的权限控制功能,以便用户能够更好地管理应用程序的权限。本篇文章将详细探讨Android主要手机机型(如华为、小米、vivo、OPPO等)的跳转权限设置界面的...

    Android高级应用源码-android多分辨率适配 ,判断平板还是手机,等比例缩小图片.zip

    这可能是一个文本文件,包含了关于Android应用架构或设计模式的详细解释,例如MVP(Model-View-Presenter)、MVVM(Model-View-ViewModel)等,这些模式在构建可维护和可测试的Android应用中非常常见。 5. **��...

    Android_手机多媒体程序开发教程

    1. **开发平台**:可以在任何一台PC上进行Android应用程序的开发工作。 2. **底层代码开发**:对于Android底层代码的修改和编译,则需要在Linux环境下完成。 3. **程序测试**:底层程序的测试需在Android Arm开发板...

    android 屏幕适配(百分比适配)

    "百分比适配"是Google提出的一种解决方案,旨在帮助开发者创建跨不同屏幕尺寸和密度的应用程序,确保用户界面在所有设备上都能保持一致的视觉体验。下面我们将详细探讨这一主题。 1. **屏幕适配问题**: 在Android...

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

    在Android应用开发中,确保应用程序能够自适应各种手机屏幕大小和分辨率是至关重要的。这不仅可以提供优秀的用户体验,也是Google Play商店对应用质量的基本要求。以下是一些关键知识点,帮助开发者实现这一目标: ...

    详解Android 折叠屏适配攻略

    这种适配的目的是为了让应用程序在折叠屏手机上能够正常运行和显示。 Android 折叠屏适配的必要性 Android 折叠屏适配是必要的,因为我们的应用程序可能在运行过程中,所在的屏幕尺寸发生了变化,这种情况对现有...

    迈向多元化平台!Windows 11将支持Android应用程序.pdf

    标题中的关键知识点是Windows 11操作系统将支持Android应用程序,这是一个重大的跨平台融合举措,意味着用户可以在个人电脑上直接使用手机应用。Windows 11的发布是微软六年来的重大更新,预示着Windows历史上的新...

Global site tag (gtag.js) - Google Analytics