Android 资产创建-9patch SplashScreen和ScreenDensity

Android 资产创建-9patch SplashScreen和ScreenDensity,android,size,photoshop,pixels,Android,Size,Photoshop,Pixels,所以我得到了整个Android像素独立性的东西 我正在创建一个SplashScreen,它使用了一个9patch,可以拉伸它的边缘以适应所有屏幕尺寸 我还在ldpimpdihdpixhdpi中为每个启动屏幕使用不同大小的9patch图像。 这样徽标(9patch的非拉伸区域)的大小就正确了 我知道mdpi的相对大小是1.0,hdpix1.5,xhdpi是x2,但是当我创建第一个mdpi图像时,我如何知道它应该有多少像素宽/高 希望这是有道理的。真的没有一个答案。不过,首先,我不会从mdpi开始并

所以我得到了整个Android像素独立性的东西

我正在创建一个SplashScreen,它使用了一个9patch,可以拉伸它的边缘以适应所有屏幕尺寸

我还在
ldpi
mpdi
hdpi
xhdpi
中为每个启动屏幕使用不同大小的9patch图像。 这样徽标(9patch的非拉伸区域)的大小就正确了

我知道
mdpi
的相对大小是1.0,
hdpi
x1.5,
xhdpi
是x2,但是当我创建第一个mdpi图像时,我如何知道它应该有多少像素宽/高


希望这是有道理的。

真的没有一个答案。不过,首先,我不会从mdpi开始并扩大规模——最好从尽可能高的质量开始。矢量,如果它适合设计,或高分辨率图像(甚至比您当前计划支持的最大屏幕尺寸还要大)。然后,从这里开始,只需缩小您计划测试的设备的尺寸。例如,一个典型的HDPI分辨率为480 x 800,因此在那里进行适当的拟合。XHDPI分辨率可能类似于1280 x 720。最好在边缘留有足够的余量,以防它被用于具有不同纵横比的设备上。但是,基本上,设计得尽可能大,然后根据您正在处理的密度桶的一些平均屏幕分辨率进行导出。

以下是您的基本准则:

xlarge screens are at least 960dp x 720dp
large screens are at least 640dp x 480dp
normal screens are at least 470dp x 320dp
small screens are at least 426dp x 320dp

320dp: a typical phone screen (240x320 ldpi, 320x480 mdpi, 480x800 hdpi, etc).
480dp: a tweener tablet like the Streak (480x800 mdpi).
600dp: a 7” tablet (600x1024 mdpi).
720dp: a 10” tablet (720x1280 mdpi, 800x1280 mdpi, etc).
更多信息:

(…)当我创建第一个mdpi图像时,我如何知道有多少像素 宽/高应该是多少

由于
mdpi
是所有其他密度桶的基线,因此
mdpi
设备上的
1dp
将精确转换为
1px
。换句话说,使用
mdpi
设备计算屏幕上的相对大小,然后应用给定的缩放比为
ldpi
hdpi
xhdpi
存储桶生成资源。显然,您实际上不必放大该
mdpi
资源-您只需确定屏幕密度的大小,然后就可以使用任何源文件为所有存储桶生成图像

xBroak提供的链接实际上是有关您的问题的最佳信息来源。此处引用以支持上述陈述:

与密度无关的像素相当于图像上的一个物理像素 160 dpi屏幕,这是系统假设的基线密度 对于“中等”密度屏幕

了解简单的
d(i)p
px
公式(也来自同一链接)也可能会很有用:

dp单位到屏幕像素的转换很简单:
px=dp*(dpi
/160)


使用此信息,您可以轻松验证
mdpi
设备(带有
160dpi
屏幕)上的
1dp
是否等于
1px
。只需填写
160dpi
,您就会得到
px=dp*(160/160)
,它简化为
px=dp*1
,因此
px=dp
适用于
160dpi
。QED:)

基本上就像@kcopock所说的,你只需要从这个角度选择一个分辨率和比例reference@Blundell:更具体一点:确定
mdpi
设备的分辨率,使其在视觉上符合您的要求,然后将其作为其他存储桶的参考点。因此,MDPI设备的大小为320px 480px。知道了