Android屏幕尺寸像素为ldpi,mdpi,hpdi?

我读过10篇文章,但仍然无法findldpi,mdpi,hdpi和像素的实际尺寸之间的任何关系!? 请有人给一个简单的答案(如果有的话)!

我基本上试图把一个需要在多个设备上工作而不需要拉伸的启animation面 – 但是我正在努力,因为我所尝试的所有东西都被压扁或拉长了!

干杯保罗

ldpi,mdpi和hdpi是指屏幕密度, 这意味着多less像素可以适合一英寸。

它们之间的像素比例是:

  • ldpi = 1:0.75
  • mdpi = 1:1
  • hdpi = 1:1.5
  • xhdpi = 1:2
  • xxhdpi = 1:3
  • xxxhdpi = 1:4

所以让我们拍摄一个大约100X100的图像:

  • 对于MDI应该是100X100
  • 对于ldpi它应该是75X75
  • 对于HDI它应该是150X150
  • 对于xhdpi应该是200X200
  • 对于xxhdpi它应该是300X300
  • 对于xxxhdpi应该是400X400

这样,对于尺寸相同但DPI不同的屏幕,所有图像在屏幕上看起来都是相同的大小。

此外,你有多种屏幕尺寸types的小,正常,大,Xlarge和他们每一个可以是ldpi,mdpi,hdpi,xhdpi,xxhdpi(Nexus 10)或xxxhdpi。

你可以尝试创build一个适合每种屏幕types的启动屏幕图像,它给你4 * 5 = 20个不同的图像(这对我来说好像很多)。

目前只有Nexus 10处于xxhdpi类别。

安装ImageMagick并使用此shell脚本为多个设备(iOS,Android,Bada和Windows Phone)生成闪屏和图标文件。 如果你在Windows上,你可以使用cygwin / gitbash

我刚刚做了,我很高兴:-)

屏幕尺寸在脚本内部,并且 –

480x800 - screen-hdpi-portrait.png 320x200 - screen-ldpi-landscape.png 720x1280 - screen-xhdpi-portrait.png 320x480 - screen-mdpi-portrait.png 480x320 - screen-mdpi-landscape.png 200x320 - screen-ldpi-portrait.png 800x480 - screen-hdpi-landscape.png 

定义是:

  • xlarge屏幕至less960dp x 720dp。 大屏幕至less640dp x 480dp。 正常屏幕至less为470dp x 320dp。 小屏幕至less426dp x 320dp。 (Android目前不支持比此更小的屏幕)。

另外,请查看Dianne Hackborne的博客文章: http : //android-developers.blogspot.com/2011/07/new-tools-for-managing-screen-sizes.html

可能最简单的是使用图像视图并将scaletype设置为CENTER_CROP。 (均匀缩放图像(保持图像的高宽比),使图像的两个尺寸(宽度和高度)等于或大于视图的相应尺寸)。

确保你使用src标签而不是设置背景。

 <ImageView android:id="@+id/home_video_layout" android:src="@drawable/splash_image" android:layout_width="fill_parent" android:layout_height="wrap_content" android:scaleType="centerCrop" /> 

更新:

了解屏幕密度和“dp”

分辨率是显示器中可用像素的实际数量,密度是显示器的恒定区域内显示的像素数量,尺寸是可用于显示界面的物理空间量。 这些是相互关联的:一起增加分辨率和密度,并且大小保持不变。 这就是为什么Droid上的G1和480×800屏幕上的320×480屏幕都是相同的屏幕尺寸:480×800屏幕有更多的像素,但它也是更高的密度。

为了从图片中去除大小/密度计算,Android框架在可能的情况下按照“dp”单位进行工作,对于密度进行了校正。 在与原始Android手机相对应的中等密度(“mdpi”)屏幕中,物理像素与dp相同; 这些设备的尺寸都是320×480。 更新的手机可能具有480×800的物理像素尺寸,但是可以是高密度设备。 在这种情况下,从hdpi到mdpi的转换因子是1.5,所以对于开发者的目的来说,设备在dp中是320×533。

我发现这个在线dip < – >像素计算器非常有用。

https://pixplicity.com/dp-px-converter/

我支持以前的答案,但不要忘记Draw9Patch或使用NinePatchDrawables的力量

这些是指屏幕像素密度 ,而不是屏幕尺寸。 如果您确实需要根据屏幕大小(以像素为单位)更改行为,则需要查看屏幕大小说明符(如小,中,大和大)。

Android文档解释了什么密度和大小匹配这些标识符。

Android设备可以有不同的宽高比,而你的图像是固定的。 如果你不想让你的图像拉长,你将不得不填满上下和左右空白处。