`
Beyon_javaeye
  • 浏览: 64980 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

Android处理多种屏幕尺寸

阅读更多
1 默认设置

如果应用程序针对android1.5或更低版本进行编译,android将假定应用程序的设计目的是在经典的屏幕尺寸和分辨率下效果良好,如果将应用程序安装在一个带有较大屏幕的手机上,android会自动在兼容模式下运行应用程序,根据实际屏幕大小对所有内容进行缩放。

如果应用程序是针对android1.6及以上版本编译的,android假定可正确处理所有屏幕尺寸问题,因此不会以兼容模式运行应用程序。

2 多合一

在android中,处理多种屏幕尺寸最简单的办法是设计ui,使其能够自动根据屏幕的大小进行缩放,无需任何特定于尺寸的编码或资源。

2.1 考虑规则,而不是位置

最简单的规章就是android:layout_width和android:layout_height的fill_parent和wrap_content值。

最好环境就是用relativelayout。
明确地将部件固定到屏幕的底部或右侧,而不是让它们由于其他布局而改变位置
控制相互连接的部件之间的距离,无需依靠填充内容或空白。
指定规则时最好的控制方法是创建自己的布局类。

2.2 考虑物理尺寸
2.3 避免使用实际像素
2.4 选择可缩放的drawable

经典的位图(png、jpg和gif)从本质上讲都不可缩放。

解决这个问题的一个方式是尝试避免使用静态位图,使用nine-patch(可拉伸)位图和xml定义的drawable作为替代方法。Nine-patch(可拉伸)位图是一个png文件,进行了特殊编码,以通过规则说明如何拉伸该图以占据更多的空间。Xml定义的drawable使用一个类似svg xml的语言来定义形状、笔触和填充等。

3 量身定制

Android提供了根据应用程序运行环境切换资源或代码块的方式。

3.1 添加<supports-screen>
3.2 资源和资源集

基于屏幕的大小或密度切换不同内容的主要方法是创建资源集。

  1. 默认缩放
   Android将使用正常的缩放算法缩放普通的位图。

  2. 基于密度的设置
   如果想根据不同的屏幕密度拥有不同的布局、尺寸等,可以使用-ldpi、-mdpi和-hdpi资源集标签。

  3. 基于尺寸的设置
  如果想根据屏幕尺寸拥有不同的资源集,可使用android提供的-small、-normal和-large资源集标签。创建res/layout-large-land/可指定用于横向大屏幕上的布局

  4. 基于版本的设置
  可以向资源集加入一个-vN形式的版本标签,N表示api的级别。

3.3 查找尺寸

如果资源集中有独特的内容,你可以找到它并在代码中相应地使用分支语句。

可以通过configuration对象查找屏幕尺寸类,这个对象通常由一个activity通过getresource().getconfiguration()获得。

4 一切都是模拟的

4.1 密度不同
4.2 调整密度

在android1.6中引入的android avd manager。此工具的android2.0版本拥有一个launch options。

4.3 访问实际设备

5 充分利用形式

使用不同布局来利用额外的屏幕空间,而不是简单地在相同物理空间内增加像素的数目。

5.1 用按钮替代菜单
5.2 使用简单的activity替代选项卡
5.3 整合多个activity

6 示例:EU4You

6.1 第一个版本
6.2 固定字体大小
6.3固定大小的图标
6.4 使用空间
6.5不是浏览器会怎样

7 合作伙伴的错误有哪些
分享到:
评论

相关推荐

    android开发入门教程

    欢迎进入神秘的android世界!自2008年相关设备进入市场以来,android的发展日新月异,android设备日益繁盛,而其...支持android 1.5、1.6和2.0 设备,包括处理多个版本的android os、多种屏幕尺寸和其他特定于设备的特

    Android开发入门教程

    欢迎进入神秘的Android世界!...  使用和创建整合了活动、服务、内容提供程序和广播接收器的Android应用,  支持Android 1.5、1.6和2.0 设备,包括处理多个版本的Android OS、多种屏幕尺寸和其他特定于设备的特性

    Android开发入门教程(包括书和源代码)

    Android开发入门教程 作者:墨菲 欢迎进入神秘的android世界!自2008年相关设备进入市场以来,android的发展...支持android 1.5、1.6和2.0 设备,包括处理多个版本的android os、多种屏幕尺寸和其他特定于设备的特性

    Android.UI基础教程]

    2.7 完成TIME矸渔CKER 2.8 结束语 第3章 更进一步 3.1支持多种屏幕尺寸 3.1.1 资源限定符 3.1.2 资源限定符优先级 3.1.3 密度无关的像素 3.1.4 9.补丁图形 3.2处理通知 3.2.1 TOAST 3.2.2 状态栏通知 3.2.3 对话框 ...

    新版Android开发教程.rar

    ----------------------------------- Android 编程基础 1 封面----------------------------------- Android 编程基础 2 开放手机联盟 --Open --Open --Open --Open Handset Handset Handset Handset Alliance ...

    Template.Tab-based-App:用于基于模板的应用程序的合金应用程序模板。 包括多种屏幕尺寸和密度的示例图像

    此外,该模板包括如何处理多个 iOS 和 Android 屏幕尺寸和密度的选项卡图像的示例(查看 /assets/iphone/images 和 /assets/android/images 文件夹)。执照此代码根据 Apache 公共许可证(第 2 版)获得许可。

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    鉴于市场上用户的手机型号、种类、屏幕分辨率等参差不齐,传统方式根据主流系统分别开发相应的系统耗时又耗力,为了高效开发并节约开发项目成本,本文采用Android+HTML5相结合的方式进行移动端Web系统的设计研发工作...

    kotlin-android-practice:一些用于使用Kotlin练习Android基础的小项目

    kotlin-android-practice 一些面向初学者的小项目,可与Kotlin一起练习Android基础。...支持多种屏幕尺寸 处理计算操作“ +-* /”。 +/-和%是您的职责 多屏幕说明:这些是您必须支持的某种屏幕:ldpi,mdpi,hdpi,

    Flash+Flex+Air移动开发入门经典 pdf

    第5章 为多种屏幕尺寸进行开发 125 5.1 多种屏幕尺寸的考虑 125 5.1.1 像素密度 126 5.1.2 利用设备dpi 127 5.2 使内容适应舞台尺寸 131 5.2.1 使用stagescalemode 和 stagealign类 131 5.2.2 处理舞台尺寸...

    全能相机 UCam v5.2.1.011315

    6)最完美的照片后处理工具:①100多种特效②丰富的编辑功能③完美的文字、泡泡、标签功能④数百个相框、背景、装饰部件。 7)最快的连拍软件:帮你记录精彩的运动瞬间。 8)社交网站一键分享:支持一键分享到微博、...

Global site tag (gtag.js) - Google Analytics