2010-11-25 107 views

回答

162

直代码

int padding_in_dp = 6; // 6 dps 
    final float scale = getResources().getDisplayMetrics().density; 
    int padding_in_px = (int) (padding_in_dp * scale + 0.5f); 
+1

嗨,我有一个问题。这个公式只用于填充或其他任何东西吗?例如一个矩形的边缘还是两边? – Emerald214 2011-07-09 16:01:18

+4

这是[将dp单位转换为像素单位](http://developer.android.com/guide/practices/screens_support.html#dips-pels)的公式。你可以在任何地方使用它 – 2011-07-11 07:42:29

0

我有同样的问题。我发现的唯一解决方案(它不会真的帮助你:))是将其设置在Xml文件中。

如果您可以从代码中获得密度,则可以使用转换:“倾角单位转换为屏幕像素很简单:像素=倾斜*(密度/ 160)。” (从http://developer.android.com/guide/practices/screens_support.html

编辑:你可以在屏幕密度:http://developer.android.com/reference/android/util/DisplayMetrics.html#densityDpi

78

如果定义尺寸(DP或其他)在一个XML文件(这是无论如何,至少在大多数情况下),你可以得到它的像素值使用此代码:

context.getResources().getDimensionPixelSize(R.dimen.your_dimension_name)