您的位置:首页 > 移动开发 > Android开发

Android心得2.2--第一个应用程序开发过程及屏幕大小与分辨率详解

2012-07-08 07:29 387 查看
1. 开发第一个Android程序

打开Eclipse,旧版本为:新建项目(点击File—New—Project),在项目列表中展开Android目录,选择Android Project;新版本为:点击File—New-Android Application Project(也可以在项目清单区域直接右键新建)。下图为旧版本图解:

点击”finish”即可完成项目的创建,创建后的项目已经是一个可运行的Android应用,我们可以通过下面方式运行此应用:

点击工具栏上手机形状的虚拟设备管理器(简称“AVD“),(旧版本为手机图案,新版本和测试版本均为小机器人)如下:

在打开的虚拟设备管理器中创建一个虚拟手机:

2.
屏幕分辨率:

l 屏幕分辨率

l HVGA:320×480

l QVGA:240x320

l WQVGA400:240X400

l WQVAG432:240X432

l WVGA800: 480X800

l WVGA854: 480X854

Android软件开发普遍支持的机型:HTC G1,G2,G3,G4 和 Moto Droid

Android程序一般都有drawable-hdpi、drawable-mdpi、drawable-ldpi三个文件夹,用来放置不同分辨率的图片,由系统自动调用最合适的图片。

3.
其对应关系为:

l hdpi:WVGA 800×480 | WVGA854 854×480

l mdpi:HVGA 480×320

l ldpi:QVGA 320×240

这些在2.0及以上版本的操作系统中都没有问题,唯有1.6版的QVGA仍然是将自己归属于mdpi,这会导致取图错误,出现撑出屏幕之类的现象,开发时需要注意此BUG。

鉴于QVGA的Android设备很少,我甚至都想不出什么机型采用了这样的分辨率,所以一般来说只要照顾好mdpi、hdpi就好了,1.6版QVGA直接忽略算了。

关于Android的nodpi,xhdpi,hdpi,mdpi,ldpi 作者:lizongbo 发表于:22:43. 星期三, 一月 12th, 2011

4. 关于Android的nodpi,xhdpi,hdpi,mdpi,ldpi

首先是几个基本概念:

1).屏幕尺寸Screen size

即显示屏幕的实际大小,按照屏幕的对角线进行测量。

为简单起见,Android把所有的屏幕大小分为四种尺寸:小,普通,大,超大(分别对应:small, normal, large, and extra large).

应用程序可以为这四种尺寸分别提供不同的自定义屏幕布局-平台将根据屏幕实际尺寸选择对应布局进行渲染,这种选择对于程序侧是透明的。

2).屏幕长宽比Aspect ratio

长宽比是屏幕的物理宽度与物理高度的比例关系。应用程序可以通过使用限定的资源来为指定的长宽比提供屏幕布局资源。

3).屏幕分辨率Resolution

在屏幕上显示的物理像素总和。需要注意的是:尽管分辨率通常用宽x高表示,但分辨率并不意味着具体的屏幕长宽比。

在Andorid系统中,应用程序不直接使用分辨率。

4).密度Density

根据像素分辨率,在屏幕指定物理宽高范围内能显示的像素数量。

在同样的宽高区域,低密度的显示屏能显示的像素较少,而高密度的显示屏则能显示更多的像素。

屏幕密度非常重要,因为其它条件不变的情况下,一共宽高固定的UI组件(比如一个按钮)在在低密度的显示屏上显得很大, 而在高密度显示屏上看起来就很小。

为简单起见,Android把所有的屏幕分辨率也分为四种尺寸:小,普通,大,超大(分别对应:small, normal, large, and extra large).

应用程序可以为这四种尺寸分别提供不同的资源-平台将透明的对资源进行缩放以适配指定的屏幕分辨率。

5).设备独立像素Density-independent pixel (dp)

应用程序可以用来定义UI组件的虚拟像素单元,通过密度无关的方式来描述布局尺寸和位置。

一个设备独立像素相当于一个160 dpi屏幕上的物理像素。

在程序运行时,系统根据屏幕的实际密度透明的处理任何需要缩放的设备独立像素单元,设备独立像素转换成屏幕实际像素的换算很简单:pixels = dps * (density / 160).

例如在240 dpi的屏幕上,1个设备独立像素等于1.5物理像素.为确保UI组件在不同的屏幕都能合适的展示,强烈建议使用设备独立像素单元来定义你的应用程序UI。

四种屏幕尺寸分类:: small, normal, large, and xlarge

四种密度分类: ldpi (low), mdpi (medium), hdpi (high), and xhdpi (extra high)

需要注意的是: xhdpi是从 Android 2.2 (API Level 8 )才开始增加的分类.

xlarge是从Android 2.3 (API Level 9 )才开始增加的分类.

DPI是“dot per inch”的缩写,每英寸像素数。

一般情况下的普通屏幕:ldpi是120,mdpi是160,hdpi是240,xhdpi是320。

5.
参考: 两种获取屏幕分辨率信息的方法:

DisplayMetrics metrics = new DisplayMetrics();

Display display = activity.getWindowManager().getDefaultDisplay();

display.getMetrics(metrics);

//这里得到的像素值是设备独立像素dp

//DisplayMetrics metrics=activity.getResources().getDisplayMetrics(); 这样获得的参数信息不正确,不要使用这种方式。

不能使用android.content.res.Resources.getSystem().getDisplayMetrics()。这个得到的宽和高是空的。

如果需要为Android pad定制资源文件,则res目录下的目录可能为:

drawable

drawable-ldpi

drawable-mdpi

drawable-hdpi

drawable-xhdpi

drawable-nodpi

drawable-nodpi-1024×600

drawable-nodpi-1280×800

drawable-nodpi-800×480

values

values-ldpi

values-mdpi

values-hdpi

values-xhdpi

values-nodpi

values-nodpi-1024×600

values-nodpi-1280×800

values-nodpi-800×480

l 在项目上右键点击run as àAndroid application运行程序到虚拟机,如下图:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐