一般手机液晶屏幕都是TFT材质,VGA WVGA QVGA HVGE XGA只是表示屏幕分辨率只,是个代号和材质没关系。
分辨率对照表:
代号 分辨率 代号 分辨率 QVGA 320*240像素 WQVGA 400*240像素 HVGA 320*480像素 VGA 640*480像素 WVGA 800*480像素 XGA 1024*480像素
QVGA 即Quarter VGA。顾名思义即VGA的四分之一尺寸
HVGA (Half-size VGA),即VGA(640*480)的一半
WVGA 即Wide VGA
WQVGA 全称:Wide Quarter Video Graphics Array
VGA:Video Graphics Array
XGA(Extended Graphics Array):
他们和屏幕大小也没关系
比如:诺基亚N95和诺基亚E71都是QVGA 320*240,N95是2.6英寸 N95 8GB为2.8英寸, 而E71是2.36英寸
再看,苹果iphone是HVGA 320*480 3.5英寸 而G3(HTC hero)也是HVGA 320*480 屏幕为3.2英寸。
当然同样的分辨率 屏幕越小 显示越细腻!
在之前的版本中,只有一个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)
系统会根据机器的分辨率来分别到这几个文件夹里面去找对应的图片。
在开发程序时为了兼容不同平台不同屏幕,建议各自文件夹根据需求均存放不同版本图片。
术语和概念
屏幕 尺寸
屏幕的物理尺寸,以屏幕的对角线长度作为依据(比如
2.8寸,
3.5寸)。
简而言之,
Android把所有的屏幕尺寸简化为三大类:大,正常,和小。
程序可以针对这三种尺寸的屏幕提供三种不同的布局方案,然后系统会负责把你的布局方案以合适的方式渲染到对应的屏幕上,这个过程是不需要程序员用代码来干预的。
分辨率( Resolution )
屏幕上拥有的像素的总数。注意,虽然大部分情况下分辨率都被表示为“宽度×长度”,但分辨率并不意味着屏幕长宽比。在 Android系统中,程序一般并不直接处理分辨率。
密度
(Density
)
以屏幕分辨率为基础,沿屏幕长宽方向排列的像素。
密度较低的屏幕,在长和宽方向都只有比较少的像素,而高密度的屏幕通常则会有很多
——甚至会非常非常多——像素排列在同一区域。屏幕的密度是非常重要的,举个例子,长宽以像素为单位定义的界面元素(比如一个按钮),在低密度的屏幕上会
显得很大,但在高密度的屏幕上则会显得很小。
密度无关的像素(
DIP)
指一个抽象意义上的像素,程序用它来定义界面元素。它作为一个与实际密度无关的单位,帮助程序员构建一个布局方案(界面元素的宽度,高度,位置)。
一个与密度无关的像素,在逻辑尺寸上,与一个位于像素密度为
160DPI的屏幕上的像素是一致的,这也是
Android平台所假定的默认显示设备。在运行的时候,平台会以目标屏幕的密度作为基准,“透明地”处理所有需要的
DIP缩放操作。要把密度无关像素转换为屏幕像素,可以用这样一个简单的公式:
pixels = dips * (density / 160)。举个例子,在
DPI为
240的屏幕上,
1个
DIP等于
1.5个物理像素。我们强烈推荐
你用
DIP来定义你程序的界面布局,因为这样可以保证你的
UI在各种分辨率的屏幕上都可以正常显示。
原来想直接想调用程序的东西,但是使用R.styleable的时候 eclipse不能解析了,后来发现原来被删除了此方法
public ImageAdapter(Context c) { mContext = c; TypedArray a = obtainStyledAttributes(android.R.styleable.Theme); mGalleryItemBackground = a.getResourceId( android.R.styleable.Theme_galleryItemBackground, 0); a.recycle(); }
这种方法也就不能用了
然后
public ImageAdapter(Context c) { mContext = c; TypedArray a = c.obtainStyledAttributes(R.styleable.Gallery1); mGalleryItemBackground = a.getResourceId(R.styleable.Gallery1_android_galleryItemBackground, 0); a.recycle(); }
唯一要做的就是自己去做一个styleable
res\values
<?xml version="1.0" encoding="utf-8"?> <resources> <declare-styleable name="Gallery1"> <attr name="android:galleryItemBackground" /> </declare-styleable> </resources>
Loading a view into memory
Unloading a view from memory