Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 从px到dp的Photoshop设计_Android - Fatal编程技术网

Android 从px到dp的Photoshop设计

Android 从px到dp的Photoshop设计,android,Android,我在Photoshop上做了一个最终的应用程序设计,所有的东西都是用像素来衡量的。 现在我意识到Android应用程序在字体大小和其他方面使用DP 有什么方法可以将PX转换为DP吗?像素是PX,DP或DIP是独立于设备的像素。我不认为你需要转换这些。但您可以使用android工具中的draw9patch工具使用可缩放的9patch图像。在android支持的维度单位中,以下是DP的说明: 密度无关像素-基于屏幕物理密度的抽象单位。这些单位相对于160 dpi屏幕,因此一个dp是160 dpi屏幕

我在Photoshop上做了一个最终的应用程序设计,所有的东西都是用像素来衡量的。 现在我意识到Android应用程序在字体大小和其他方面使用DP


有什么方法可以将PX转换为DP吗?

像素是PX,DP或DIP是独立于设备的像素。我不认为你需要转换这些。但您可以使用android工具中的
draw9patch
工具使用可缩放的9patch图像。

在android支持的维度单位中,以下是DP的说明:

密度无关像素-基于屏幕物理密度的抽象单位。这些单位相对于160 dpi屏幕,因此一个dp是160 dpi屏幕上的一个像素。dp与像素的比率将随屏幕密度而变化,但不一定成正比。注意:编译器同时接受“dip”和“dp”,尽管“dp”与“sp”更为一致

这意味着像素和DP之间的“转换”将不一致——在某些设备上,比率可能是1DP=160px,但理论上可以是任何值。当您将按钮的宽度设置为,例如,
100dp
(因为它将动态渲染)时,这一切都很好,但是当您有必须具有固定大小的图像时,它会出现问题

请在“”上阅读此页--Android有一个名为的工具,它可以让您创建特定于大小和密度的图像资源版本。例如,对于低密度屏幕,您可以创建较小版本的图像,并将其放置在
可绘制ldpi
目录中(对于高密度屏幕,则为
可绘制hdpi



tl;dr实际上,您不能“从PX转换为DP”(因为比率不是固定的),但您可以创建多个版本的图像,并告诉Android使用哪个版本的资源目录限定符。

更实用的一点是,在增加工作量和可信度方面,您有几个选择:

  • 将您的资源缩放为每英寸160点,将它们放在
    res/drawable
    目录中,让操作系统将它们缩放到设备上

  • 制作两份资源副本:一份在
    res/drawable
    目录中以每英寸160点的速度复制,另一份在
    res/drawable hdpi
    目录中以每英寸240点的速度复制。让操作系统从一个非常接近的数字开始为精确的设备扩展

  • 确定您不需要任何缩放和原始像素,因此将您的资源放在
    res/drawable nodpi
    目录中。这意味着在320x480(像素)的屏幕上,一部手机上的图形可能是2英寸乘3英寸,但在另一个屏幕上只有1 1/3英寸乘2英寸

  • 使用
    draw9patch
    工具为您的工作指定精确的缩放策略。这对于防止框的角从缩放中得到“锯齿”以及使全屏图形处理不同的纵横比非常有用

  • 为您关心的每台设备制作单独的图形,其余部分使用可缩放图形。你需要超越那些挥舞着时尚指南试图说服你不要这样做的狂热者


  • 哦,作为一个问题,为你的字体指定
    sp
    ,而不是
    dp
    pt
    。10点字体应为22 sp字体[=10*(160/72)或=点数乘以2.222]
    sp
    单位根据用户对小字体、中字体或大字体的偏好进行缩放。

    我也有同样的问题,但现在得到了解决方案

    为什么不使用在线转换器来查看不同分辨率的android设备必须使用哪种dp或px

    请看这个链接:这对我很有帮助,也对你很有帮助


    享受编码。

    这是一个在线DP/PX转换器工具:

    那么如何计算字体大小?我知道在我的布局(PSD)中,它们是25px。但是我需要为开发者重新计算这个大小。文本不应作为图像,因为此应用程序是多语言的。@Dammark对于字体大小,您应该使用
    sp
    (与比例无关的像素)。这与
    dp
    基本相同,但根据用户的字体大小偏好进行缩放(有关更多信息,请参见上面的尺寸单位列表)。