从hdpi转换为ldpi / mdpi / xhdpi的公式

时间:2014-08-06 01:17:03

标签: android android-layout

我有一个x像素宽,y像素高的图像。

它在android hdpi肖像显示中显示正常

我是否可以使用公式将x和y转换为适用于纵向和横向的ldpi,mdpi和xhdp显示的尺寸?

1 个答案:

答案 0 :(得分:1)

以下是一些我在静态Utils类中总是很方便的方法:

public static int convertDp2Px(Context context, int dps) {
    final float scale = context.getResources().getDisplayMetrics().densityDpi;
    float pixels = dps * (scale / 160.0f);
    return (int) pixels;
}

public static float convertPx2Dp(Context context, int pixels) {
    final float scale = context.getResources().getDisplayMetrics().densityDpi;
    float dps = pixels / (scale / 160.0f);
    return dps;
}

并且......从这个链接: http://developer.android.com/training/multiscreen/screendensities.html

要生成这些图像,您应该以矢量格式开始使用原始资源,并使用以下大小比例为每个密度生成图像:

xhdpi:2.0 hdpi:1.5 mdpi:1.0(基线) ldpi:0.75