
手机屏幕的分辨率 320*480 ,图像尺寸72*72,正常显示。
在 240*320 的屏幕分辨率下,图像尺寸是多少(缩放比率是多少)才会正常显示(不失真,不模糊)?
一般比你手机屏幕大的都没事,但是怎么保持比例,像320*480比例就是0.66,你做的图片,保持这个比例就行!
320/480=0.66啊就是这么算啊,下次你做图片就按这个比例来就好了,就不会变形,走样了
http://segmentfault.com/q/1010000000425073
手机切图
http://www.mobileui.cn/app-cut-pic-that-things.html
http://www.fondcool.com/article/detail/94.html
内容重点
以分辨率为1024×768的屏幕来说,即每一条水平线上包含有1024个像素点,共有768条线,即扫描列数为1024列,行数为768行。
举例来说,屏幕分辨率同为1280*720P 一个屏幕为6.0英寸,另一个屏幕为4.7英寸,都知道6.0英寸的要比4.7英寸的大,
而尺寸小的屏幕容纳的分辨率像素更密集,那么同样的分辨率在成像质量上4.7的肯定比6.0的效果要好啦,所以并非屏幕越大越好哦,还要算上屏幕分辩率
PPi(pixels per inch)所表示的是每英寸所拥有的像素(pixel)数目。因此PPI数值越高,即屏幕能够以越高的密度显示图像。
当然,显示的密度越高,拟真度就越高。红米手机的分辨率为1280*720P,而红米手机的尺寸为4.7英寸,根据以上PPI公式计算,
我们的红米手机显示精度为312PPI,已经超过了300PPI的人眼临界点,达到了视网膜屏幕的级别耶!在现在的千元机市场中,除了红米,是没有任何一部手机可以做到的。
http://tieba.baidu.com/p/2515286522
mdpi
hdpi
xhdpi
http://www.cnblogs.com/cmduan/archive/2012/03/09/2388345.html
Android上常见度量单位【xdpi、hdpi、mdpi、ldpi】解读
术语和概念
屏幕尺寸
屏幕的物理尺寸取决于屏幕的对角线长度(例如2.8英寸,3.5英寸).
简而言之,Android将所有屏幕尺寸缩小为三个主要类别: 大屏幕,普通屏幕和小屏幕.
程序可以为这三种尺寸的屏幕提供三种不同的布局,然后系统将负责以合适的方式将布局呈现到相应的屏幕. 此过程不需要程序员使用代码进行干预.
屏幕宽高比
屏幕的物理长度与物理宽度的比率. 该程序可以为屏幕提供指定的材质,以表示纵横比,并且只需要长时间使用系统提供的资源分类器即可.
决议
屏幕上的像素总数. 注意,尽管在大多数情况下将分辨率表示为“宽度x长度”,但是该分辨率并不表示屏幕纵横比. 在Android系统中,程序通常不直接处理分辨率.
密度
根据屏幕分辨率,像素沿着屏幕的长度和宽度排列.
低密度屏幕在长度和宽度方向上的像素较少,而高密度屏幕通常在同一区域中排列的像素甚至很多. 屏幕的密度非常重要. 例如,由像素的长度和宽度定义的界面元素(例如按钮)在低密度屏幕上会显得很大,而在高密度屏幕上会看起来很高. 小.
与密度无关的像素(DIP)
指抽象意义上的像素,程序使用它来定义界面元素. 它的作用与实际密度无关,可以帮助程序员构建布局(宽度,高度,界面元素的位置).
与密度无关的像素在逻辑上与位于像素密度为160 DPI的屏幕上的像素相同,这也是Android平台假定的默认显示设备. 在运行时,平台将以目标屏幕的密度为基准来“透明地”处理所有必需的DIP缩放操作. 要将与密度无关的像素转换为屏幕像素,可以使用一个简单的公式: pixels = dips *(密度/ 160). 例如,在DPI为240的屏幕上,一个DIP等于1.5个物理像素. 强烈建议您使用DIP定义程序的界面布局,因为这可以确保您的UI可以正确显示在各种分辨率的屏幕上.
为了简化程序员使用各种分辨率的麻烦,并使具有各种分辨率的平台直接运行这些程序,Android平台分别按密度和分辨率对所有屏幕进行分类. 分为三类:
·三个主要尺寸: 大,普通,小;
三种不同的密度: 高(hdpi),中(mdpi)和低(ldpi). [DPI是“每英寸点数”(pixel per inch)的缩写. )

如果需要,该程序可以为各种尺寸的屏幕提供不同的资源(主要是布局),为各种密度的屏幕提供不同的资源(主要是位图). 此外,该程序无需对屏幕的大小或密度进行任何其他处理. 在执行时,平台将根据屏幕本身的大小和密度特征自动加载相应的资源,并将它们从逻辑像素(用于定义界面布局的DIP)转换为屏幕上的物理像素.
首先,一些基本概念:
1. 屏幕尺寸
是显示屏的实际尺寸,根据屏幕的对角线测量.
为简单起见,Android将所有屏幕尺寸分为四个尺寸: 小,普通,大和特大(分别为: 小,普通,大和特大).
应用程序可以为这四种尺寸提供不同的自定义屏幕布局-平台将根据屏幕的实际大小选择相应的布局以进行渲染,并且此选择对于程序端是透明的.
2. 长宽比
宽高比是屏幕的物理宽度与其物理高度的比率. 应用程序可以通过使用有限的资源来提供指定纵横比的屏幕布局资源.
3. 屏幕分辨率
屏幕上显示的物理像素总数. 应当注意,尽管分辨率通常表示为宽度x高度,但是分辨率并不意味着特定的屏幕纵横比.
在Andorid系统中,应用程序不直接使用分辨率.
4. 密度
根据像素分辨率,可以在指定的屏幕物理宽度和高度内显示的像素数.
在相同的宽高区域中,低密度显示器可以显示更少的像素,而高密度显示器可以显示更多的像素.
屏幕密度非常重要,因为其他条件相同,因此,具有固定宽度和高度的UI组件(例如按钮)在低密度显示器上看起来很大,而在高密度显示器上看起来很大. 它很小.
为简单起见,Android还将所有屏幕分辨率分为四种尺寸: 小,普通,大和特大(分别为: 小,普通,大和特大).
应用程序可以为这四种尺寸提供不同的资源-平台将透明地缩放资源以适合指定的屏幕分辨率.
5. 与设备无关的像素(dp)
应用程序可用于为UI组件定义虚拟像素单元手机屏幕长宽比,以与密度无关的方式描述布局大小和位置.

与设备无关的像素等效于160 dpi屏幕上的物理像素.
在程序运行时,系统透明地处理需要根据屏幕的实际密度缩放的任何与设备无关的像素单元. 与设备无关的像素到实际屏幕像素的转换非常简单: pixels = dps *(密度/ 160).
例如,在240 dpi屏幕上,一个与设备无关的像素等于1.5个物理像素. 为了确保UI组件可以正确显示在不同的屏幕上,强烈建议您使用与设备无关的像素单位来定义应用程序UI.
四个屏幕尺寸类别: 小,常规手机屏幕长宽比,大和超大
四种密度分类: ldpi(低),mdpi(中),hdpi(高)和xhdpi(超高)
请注意,xhdpi是自Android 2.2(API级别8)以来才添加的类别.
xlarge是自Android 2.3(API级别9)以来才添加的类别.
DPI是“每英寸点数”(dot per inch)的缩写,即每英寸像素数.
正常情况下的正常屏幕: ldpi为120,mdpi为160,hdpi为240,xhdpi为320.
参考:
两种获取屏幕分辨率信息的方法:
DisplayMetrics指标=新的DisplayMetrics();
显示显示= activity.getWindowManager(). getDefaultDisplay();
display.getMetrics(指标);
//这里获得的像素值是与设备无关的像素dp
// DisplayMetrics指标= activity.getResources(). getDisplayMetrics();这样获取的参数信息有误. 不要使用此方法.
不能使用android.content.res.Resources.getSystem(). getDisplayMetrics(). 结果宽度和高度为空.

private void initResolutionStr(Context context) {
if (ApiConfig.getResolutionStr() == null || ApiConfig.getResolutionStr().equals("")) {
WindowManager winMgr = (WindowManager) context.getApplicationContext().getSystemService(Context.WINDOW_SERVICE);
Display display = winMgr.getDefaultDisplay();
int height = display.getHeight();
int width = display.getWidth();
String resolution = height > width ? height + "x" + width : width + "x" + height;
ApiConfig.setResolutionStr(resolution);
// densityDpi = 120dpi is ldpi, densityDpi = 160dpi is mdpi,
// densityDpi = 240dpi is hdpi, densityDpi = 320dpi is xhdpi
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int densityDpi = dm.densityDpi;
ApiConfig.setDensityDpi(densityDpi);
}
}


如果您需要为Android pad自定义资源文件,则res目录下的目录可能是:
可绘制
drawable-ldpi
drawable-mdpi
drawable-hdpi
drawable-xhdpi
drawable-nodpi
drawable-nodpi-1024×600
drawable-nodpi-1280×800
drawable-nodpi-800×480
值
values-ldpi
values-mdpi
values-hdpi
values-xhdpi
values-nodpi
values-nodpi-1024×600
values-nodpi-1280×800

values-nodpi-800×480
Android上的常用测量单位:
px(像素): 屏幕上的点,绝对长度,取决于硬件.
英寸(英寸): 长度单位.
mm: 长度单位.
pt(点): 1/72英寸,点.
dp(与密度无关的像素): 基于屏幕密度的抽象单位. 在每英寸160点的显示器上,1dp = 1px.
dip: 与密度无关的像素,与dp相同.
sp: 在dp的基础上,它与比例无关. 我个人将其理解为矢量图形单元.
引入dp / dip的原因:
过去,程序员通常以像素为单位设计计算机用户界面. 例如,定义一个宽度为300像素,列间距为5像素,图标大小为16×16像素的表单域,依此类推. 这样做的问题是,如果您在具有更高的每英寸点数(dpi)的新显示器上运行该程序,则用户界面将显得很小. 在某些情况下,用户界面可能很小,以至于很难看到内容. 与分辨率无关的度量单位可以解决此问题.
如何计算密度(请参考原始帖子: );
1. 标准是在1.5 * 2平方英寸上绘制的240 * 320. 因此,如果每平方英寸有240 * 320 /(1.5 * 2)= 25600点,即平方英寸像素为25600,则将dpi作为其平方根160;如果您的dpi为120,则其密度为0.75.
2. 密度不仅与宽度有关,而且与高度有关,因此,无论宽度为1.8还是1.3,其密度都可以为1;例如,如果像素的高度为3 / 1.8,则宽度为1.8,如果像素为240 * 320,则像素的密度仍为1. 同样,如果像素的宽度为1.3,则像素的高度为3 / 1.3,并且像素为240 * 320,密度为1.
3.320 * 480 /(1.5 * 2)每平方英寸获得51200点,因此单位平方英寸为240 * 320,在1.5 * 2屏幕上加倍. 但这是平方英寸. 计算密度时需要平方,因此应为2平方,即1.414,近似密度为1.5.
如何独立于密度:
如果屏幕密度为160,则dp,sp和px相同. 1dp = 1sp = 1px,但是如果使用px作为单位,则如果屏幕尺寸不变(假设仍为3.2英寸),则屏幕密度将变为320. 然后将原始TextView的宽度设置为160px,即在密度为320的3.2英寸屏幕上比密度为160的3.2英寸屏幕短一半. 但是如果将其设置为160dp或160sp. 系统将自动将width属性值设置为320px. 那是160 * 320/160. 其中320/160可以称为密度比例因子. 换句话说,如果使用dp和sp,系统将根据屏幕密度的变化自动进行转换. 官方文档中总结的计算公式为: 像素= dps *(密度/ 160).
附加:
据说iPhone / Mac的设计从一开始就考虑到对任意分辨率的支持. iOS的所有界面元素均已矢量化. UI界面是系统级的,与密度无关. Android尽管它支持任意分辨率,但它不是系统范围的. 请验证.
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shouji/article-156430-1.html
金华王子们又受打击
向市场进军